Напишите скрипт, который делает это:
#!/bin/bash trap 'echo hup' hup trap 'echo int' int trap 'echo quit' quit trap 'echo abrt' abrt trap 'echo kill' kill trap 'echo usr1' usr1 trap 'echo usr2' usr2 trap 'echo term' term trap 'echo chld' chld trap 'echo cont' cont trap 'echo stop' stop trap 'echo tstp' tstp trap 'echo ttin' ttin trap 'echo ttou' ttou shopt huponexit sleep 10 echo $(date) process $$ done
Напишите второй сценарий, который делает : > nohup.out; nohup firstscript& echo sleeping; sleep 10
. Запустите второй скрипт, подождите секунду или две, затем закройте терминал PuTTY. Откройте новый терминал PuTTY и проверьте файл nohup.out. Он должен сказать вам, какой сигнал получил первый скрипт, который заставил его остановиться. Это поможет вам понять, как поступить. Вы можете попробовать сделать trap '' THEGUILTYSIGNAL
для одной вещи.
Это также должно сказать вам значение huponexit. Если это так, вы можете поэкспериментировать shopt -u huponexit
и посмотреть, улучшит ли это ситуацию. (Улучшение = вы можете запустить второй скрипт, затем закрыть свой терминал PuTTY, но первый скрипт все еще выполняется до конца.)