Emacs shell-command在崩溃时重启

时间:2010-04-11 17:54:54

标签: emacs elisp

是否可以通过shell命令崩溃检测长时间运行的进程,以便自动重启?无需手动检查缓冲区并手动重启。

1 个答案:

答案 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系统。