是否可以通过shell命令崩溃检测长时间运行的进程,以便自动重启?无需手动检查缓冲区并手动重启。
答案 0 :(得分:2)
我根本不会从Emacs处理这个问题。相反,我会围绕我原来长时间运行的进程编写一个包装器脚本,如果它以某种方式死亡,它将重新启动进程。例如,如果程序因获取SIGABRT信号而死亡,则包装器脚本可能如下所示:
#!/bin/bash
while true
do
your-original-command --switch some args
if [ $? -ne 134 ]; then break; fi
echo "Program crashed; restarting"
done
我通过这样做获得了SIGABRT信号的值134:
perl -e 'kill ABRT => $$'; echo $?
这都是假设某种Unix-y系统。