Запуск скрипта bash в фоновом режиме с включенным управлением заданиями и закрытым стандартным вводом приведет к выходу из оболочки PARENT. Как это может случиться?
Чтобы продемонстрировать, сделайте это background_bash_script
:
#!/bin/bash
set -m
ruby -e "puts :here"
Затем запустите его в bash - он выйдет из оболочки, в которой вы его запустили. Команда ruby не имеет значения, хотя кажется, что это должна быть команда, а не встроенная bash (например, awk --version
работает, а true
нет). Чтобы лучше рассмотреть, я запускал его в еще одном экземпляре bash. Полная сессия выглядит так.
parent: PS1='child: ' bash
child: ./background_bash_script <&- &
[1] 3893
child: here
exit
parent:
Сбивает с толку!
trap exit CHLD
? :) - person dannysauer   schedule 04.09.2013