杀死并重新启动适合某种模式的多个进程

pha*_*joe 1 unix shell scripting kill

我正在尝试编写一个shell脚本,它会杀死所有正在运行的匹配特定模式的进程,然后重新启动它们.我可以用以下方式显示进程:

ps -ef|grep ws_sched_600.sh|grep -v grep|sort -k 10
Run Code Online (Sandbox Code Playgroud)

其中列出了相关流程:

user 2220258       1   0 16:53:12      -  0:01 /bin/ksh /../../../../../ws_sched_600.sh EDW02_env
user 5562418       1   0 16:54:55      -  0:01 /bin/ksh /../../../../../ws_sched_600.sh EDW03_env
user 2916598       1   0 16:55:00      -  0:01 /bin/ksh /../../../../../ws_sched_600.sh EDW04_env
Run Code Online (Sandbox Code Playgroud)

但我不太确定如何通过进程ID来杀死?

Joh*_*ica 6

sort似乎没有必要.您可以使用awk打印第二列xargs并将输出转换为命令行参数kill.

ps -ef | grep ws_sched_600.sh | awk '{print $2}' | xargs kill
Run Code Online (Sandbox Code Playgroud)

或者,您可以根据进程名称使用pkillkillall杀死:

pkill -f ws_sched_600.sh
Run Code Online (Sandbox Code Playgroud)