如何识别从您的用户帐户提供的工作并将其终止
How to identify a job given from your user account and kill it
昨天我在家里的远程服务器上找到了一份工作。命令是
sh run.sh >& out &
run.sh会递归执行一个程序(average.f)超过1000次。
今天,在我的办公室,我发现我的 run.sh 有一些错误。所以我想杀了它。
我使用了 top 命令,但它没有显示 run.sh。它只显示 average.f。所以,有一次,我用 kill PID 杀死了它,它又开始 average.f 另一个 PID 并产生输出。
ps -u 未显示 run.sh 或 average.f。
任何人都可以帮助我如何结束这份工作。
使用pstree(1) (probably as pstree -p
) to list the process tree hierarchy, then kill(1) (first with -TERM
, then with -QUIT
, and if that does not work, at last with -KILL
) your topmost shell process running run.sh
(or else the few "higher" processes). Perhaps use killall(1) or pidof(1) (or pgrep(1)或pkill
)
您可能想要用负 pid 杀死 process group。
你不应该一开始就kill -KILL
一个过程(但只在最后度假村);一些程序(例如数据库服务器,复杂的数值计算 application checkpointing, ...) have installed a SIGTERM
or SIGQUIT
signal handler to clean up their mess and e.g. save some state (on the disk) in a sane way. If you kill -KILL
them, they could leave the mess uncleaned (since SIGKILL
cannot be caught, see signal(7)...)
顺便说一句,你应该使用 ps auxw
列出所有进程,阅读 ps(1)
ps -ef | grep run.sh | grep -v grep | awk '{print }' | xargs kill -9
使用流程或应用程序名称查找您的工作 ID。下面给出了示例 - 我在这里杀死 java 进程
ps -aef|grep java
// 上面的命令会给你 pid,现在在下面的命令中执行以终止那个作业
kill -9 pid
// 这里的 pid 是你从第一个命令得到的数字
昨天我在家里的远程服务器上找到了一份工作。命令是
sh run.sh >& out &
run.sh会递归执行一个程序(average.f)超过1000次。 今天,在我的办公室,我发现我的 run.sh 有一些错误。所以我想杀了它。
我使用了 top 命令,但它没有显示 run.sh。它只显示 average.f。所以,有一次,我用 kill PID 杀死了它,它又开始 average.f 另一个 PID 并产生输出。
ps -u 未显示 run.sh 或 average.f。
任何人都可以帮助我如何结束这份工作。
使用pstree(1) (probably as pstree -p
) to list the process tree hierarchy, then kill(1) (first with -TERM
, then with -QUIT
, and if that does not work, at last with -KILL
) your topmost shell process running run.sh
(or else the few "higher" processes). Perhaps use killall(1) or pidof(1) (or pgrep(1)或pkill
)
您可能想要用负 pid 杀死 process group。
你不应该一开始就kill -KILL
一个过程(但只在最后度假村);一些程序(例如数据库服务器,复杂的数值计算 application checkpointing, ...) have installed a SIGTERM
or SIGQUIT
signal handler to clean up their mess and e.g. save some state (on the disk) in a sane way. If you kill -KILL
them, they could leave the mess uncleaned (since SIGKILL
cannot be caught, see signal(7)...)
顺便说一句,你应该使用 ps auxw
列出所有进程,阅读 ps(1)
ps -ef | grep run.sh | grep -v grep | awk '{print }' | xargs kill -9
使用流程或应用程序名称查找您的工作 ID。下面给出了示例 - 我在这里杀死 java 进程
ps -aef|grep java
// 上面的命令会给你 pid,现在在下面的命令中执行以终止那个作业
kill -9 pid
// 这里的 pid 是你从第一个命令得到的数字