我正在对服务器进程进行编码,我想创建一个Bash脚本,它将在以下两个条件之一中重启进程:
在任何一种情况下,脚本本身都不应退出。
我可以做这些事情中的任何一个(使用简单的循环,或使用fswatch),但我尝试两者都没有奏效。有没有办法在Bash脚本中同时执行这两种操作?
答案 0 :(得分:1)
我不熟悉fswatch,但假设你设置了opts和路径,只有当你关心的文件发生变化并且你不担心缓冲时才会写入数据,你可以尝试:
fswatch $opts $path | while read k; do kill $pid; done &
while sleep 1; do # delay 1 second between restarts
cmd &
pid=$!
wait $pid
done
当可执行文件更改时,不会立即重新启动。要做到这一点,你可以做(但我不认为这是值得的):
fswatch $opts $path | while read k; do kill $pid; done &
while : ; do
cmd &
pid=$!
wait $pid
test $? -gt 128 || sleep 1
done