【发布时间】:2017-06-01 03:02:32
【问题描述】:
我有 2 个需要同时运行的进程(process1 和 process2-同名)。
我编写了一个脚本,如果这 2 个进程被杀死,它将自动重新启动所有 2 个进程。 但我被困在如果任何一个进程(任何人)被杀死,那么特定进程不会重新启动。
#!/bin/bash
cd /Desktop/XYZ/
./process1 &
cd /Desktop/XYX/new/
./process1 &
while :
do
while pgrep process1 >/Desktop/XYZ/out.txt;
do
sleep 5
done
cd /Desktop/XYZ/
./process1 &
cd /Desktop/XYX/new/
./process1 &
sleep 10
done
任何帮助将不胜感激。
【问题讨论】:
-
您目前如何检查进程是否已被杀死?通常的方法是在后台启动它们并将它们的 pid(进程 ID)记录在一个文件中。然后您可以定期使用此文件查看 pid 是否处于活动状态并具有正确的名称(因为 pid 可以重复使用),如果没有,则重新启动并存储新的 pid。
-
我已经将 pid 存储在 ''pgrep process1 >/Desktop/XYZ/out.txt" 中。
标签: bash shell scripting automation