如何识别您的用户帐户提供的工作并将其删除

时间:2015-07-01 05:49:46

标签: linux unix kill

昨天我从家里给了一个远程服务器的工作。命令是

sh run.sh >& out &

run.sh将以递归方式超过1000次执行程序(average.f)。 今天,在我的办公室里,我在run.sh中发现了一些错误。所以我想杀了它。

我使用了top命令,但它没有显示run.sh.它只显示average.f。所以,有一次,我用杀死PID杀死了它,它再次以另一个PID启动average.f并产生输出。

ps -u没有显示run.sh或average.f。

任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

使用流程或应用程序名称查找您的工作ID。示例如下 - 我在这里杀了java进程

ps -aef | grep java

//上面的命令会给你pid,现在点击命令以杀死那份工作

kill -9 pid

//这里pid是一个从第一个命令

获得的数字

答案 1 :(得分:1)

ps -ef | grep run.sh | grep -v grep | awk '{print $2}' | xargs kill -9

答案 2 :(得分:0)

使用pstree(1)(可能为pstree -p)列出流程树层次结构,然后kill(1)(首先使用-TERM,然后使用-QUIT,以及这不起作用,最后与-KILL)运行run.sh的最顶层shell进程(或者少数"更高"进程)。也许使用killall(1)pidof(1)(或pgrep(1)pkill

您可能想要使用负pid杀死process group

您应该从不在第一个kill -KILL进程(但仅限于 last 度假村);一些程序(例如数据库服务器,带有application checkpointing的复杂数值计算,......)安装了SIGTERMSIGQUIT信号处理程序来清理它们的混乱,例如以理智的方式保存一些状态(在磁盘上)。如果你kill -KILL他们,他们可能会留下未清理的混乱(因为SIGKILL无法捕获,请参阅signal(7) ....)

顺便说一下,您应该使用ps auxw列出所有流程,请阅读ps(1)