Emacs shell命令在崩溃时重新启动

Emacs shell命令在崩溃时重新启动,emacs,elisp,Emacs,Elisp,是否可以检测由shell命令启动的长时间运行的进程何时崩溃,以便自动重新启动?如果不手动检查其缓冲区并手动重新启动。我根本不会从Emacs处理这个问题。相反,我会围绕我原来的长时间运行的进程编写一个包装器脚本,如果进程以部分方式死掉,它会重新启动进程。例如,如果您的程序因获得SIGABRT信号而死亡,则包装器脚本可能如下所示: #!/bin/bash while true do your-original-command --switch some args if [ $? -

是否可以检测由shell命令启动的长时间运行的进程何时崩溃,以便自动重新启动?如果不手动检查其缓冲区并手动重新启动。

我根本不会从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系统