Есть несколько способов сделать ваш фоновый процесс устойчивым к повесить трубку во-первых, у вас есть нет
который инструктирует сигнал функция для игнорирования ПОДПИСАТЬСЯ
прежде чем заменить себя новым процессом (execvp). Однако для приложений, которые повторно реализуют обработку сигналов, это невозможно.
Далее, setid
команда работает почти так же, но вместо управления сигналом setID() используется для создания нового сеанса, это не сделает ваше приложение невосприимчивым, но, по крайней мере, оно больше не будет получать сигнал от терминала. Теперь эти две команды можно комбинировать, например, если SIGHUP соблюдается, иначе nohup будет избыточным.
Наконец, с отречься
вы можете либо удалить свое приложение из активных заданий, либо пометить приложение, используя -час
чтобы не получать SIGHUP, отправленный из оболочки. Теперь, как с setid
, это не сделает ваше приложение невосприимчивым, но пока SIGHUP не отправляется напрямую в процесс, все должно быть в порядке.
firefox &>/dev/null и отречься
Вы также можете отказаться от работающего приложения.
$ фаерфокс
Ctrl + Z
^ Z
[1]+ Firefox остановлен
$ бг
$ отречься
отречься
также принимает в качестве аргумента jobspec или pid.