Я бы не справился с этим из Emacs. Вместо этого я бы написал скрипт-обертку вокруг моего первоначального длительного процесса, который перезапускает процесс, если он умирает частичным образом. Например, если ваша программа умирает, получая сигнал SIGABRT, сценарий оболочки может выглядеть следующим образом:
#!/bin/bash
while true
do
your-original-command --switch some args
if [ $? -ne 134 ]; then break; fi
echo "Program crashed; restarting"
done
Я получил значение 134 для сигнала SIGABRT, выполнив это:
perl -e 'kill ABRT => $$'; echo $?
Все это предполагает какую-то систему Unix-y.