如何在 UNIX 中查找正在进行的作业的 PID?

如何在 UNIX 中查找正在进行的作业的 PID?

我执行了一个 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作业都会设置为在不完整或具有“正在进行的”守护进程时重新启动。

相关内容