我执行了一个 shell 脚本,它将调用一些内部应用程序,并且需要几个小时。由于一些问题,我不得不停止或终止这项工作。为此,我首先跑去ps -u $uname
列出所有正在进行的工作。
PID TTY TIME CMD
14172 pts/1 0:00 ps
12939 ? 0:00 sshd
12904 ? 0:01 sshd
13132 pts/1 0:00 bash
12945 pts/1 0:00 sh
12897 ? 0:00 sshd
现在,我如何找到正确的 PID 来杀死呢?
答案1
你也可以考虑使用
pgrep "you_script"
或者
pgrep -f "complete_cmd_line_of_script"
“process-grep”仅结果 PID
如果你想杀死你找到的进程,你也可以使用 pkill,它使用与 pgrep 相同的语法
答案2
ps aux | grep "your_script_name.sh"
答案3
更完整的答案是,因为您只对 PID 感兴趣:
ps aux | grep yourscript | grep -v grep | awk '{print $2}'
答案4
ps -aux
这是一个很棒的命令,但是请记住,大多数cron
作业都会设置为在不完整或具有“正在进行的”守护进程时重新启动。