一. Linux 杀死顽固进程

Linux进程状态成 Z(TASK_Zoombie),T(TASK_Stopped or Traced)时,无法用kill -9 杀死。

1.一般情况下进程进入僵尸状态时,会被init进程接管,会自动消亡,可不用理会。

2.当进程被调试状态时(当运行gdb或strace命令时),会向进程发送一个STOPPED信号,导致进程进入TASK_STOPPED状态。此信号会导致该进程无法响应SIGKILL,SIGEGV等信号,因此怎么都杀不掉。

解决方案:

killall gdb 或 killall strace   命令杀死gdb或strace,大多数情况下可让进程恢复正常TASK_RUNNING状态,此时kill -9 pid杀死进程。

有时即使杀死了gdb或strace进程,通过ps -aux发现,进程仍然未能恢复R状态,无法kill。

可通过以下命令解决:

kill -18 pid #直接向该进程发送SIGCONT信号,可以让其从TASK_STOPPED状态恢复到TASK_RUNNING状态。

 

二. Linux下删除乱码文件

Linux乱码文件无法输入文件名匹配,也无法通过 rm -rf *.txt 后缀方式删除。

可以通过文件的唯一标识inode(索引节点)来删除:

ll -i #显示文件inode

find . -inum 1732544 -exec rm -rf {} \;#{}与\;有空格分隔