Как знать когда задание в экранных концах?

Это много зависит от того, на каком обновлении компилятора вы сделали. Если бы это было существенно, то все должно быть перекомпилировано *) из-за возможных изменений в ABI под компилятором. Во многих случаях это не будет необходимо, но если ваши пакеты зависят от чего-то вроде C ++ 11, то вы можете столкнуться с проблемами - см. E.g. Новости News о смене ABI в GCC 4.7 или GCC Bugzilla .

*) Обратите внимание на акцент на «перекомпилированном» - определенно не имеет большого смысла перекомпилировать (прочитайте восстановление) приложение Python или Perl, потому что вы изменили компилятор C. Если у него также не имеет родной компонент (который это хорошо может).

0
01.09.2014, 01:07
2 ответа

вы просто связываете команды 1. your_script и 2. kill this screen session

Let foo.sh be your script. Командой для завершения сеанса экрана является kill. Вы выдаете команду на сеанс экрана с помощью screen -X, что делает screen -X kill командой shell/bash для завершения сеанса экрана, в котором Вы находитесь в данный момент. Вы бы

screen -S the_session_for_my_job

создали сеанс экрана, а затем

/path/to/foo.sh; screen -X kill

Это убьет сеанс экрана, независимо от количества окон, и сделает это после того, как foo.sh закончит.

Более сложным способом является просмотр идентификаторов процесса и выдача команды kill при исчезновении определенного PID.

Пусть 12345 PID процесса, который вы хотите наблюдать. Тогда вы бы

while ps a | grep ^12345;do sleep 2; done; screen -X kill

В то время как петля просматривает список процессов для процесса с PID 12345. Если такой процесс существует, он проспит 2 секунды перед повторной проверкой. Если процесс с таким PID не существует, то цикл завершается. Затем выдается команда kill.

3
28.01.2020, 02:20

Я использую электронную почту со следующей записью:

command | mail-s job_output to@email.com; exit

Или, если она уже запущена, вы можете ввести (или скопировать-вставить, если есть много вывода) команды для выполнения после завершения:

echo $STY done | mail -s job_done to@email.com; exit
1
28.01.2020, 02:20

Теги

Похожие вопросы