Nohup не работает с OS X Yosmite - получить ошибку "не может отсоединиться от консоли нет такого файла или каталога"
Я использую nohup для запуска команды из приложения php (у меня есть веб-страница, которая отправляет запрос POST на php-сервер для запуска оболочки script в фоновом режиме).
Это что-то вроде
exec('nohup /home/user/test.sh > /home/user/test.log 2>&1 &')
Это отлично работало, когда я использовал OS X Snow Leopard (OS X 10.6). Однако недавно я обновил свой MAC до OS X Yosemite (OS X 10.10), и теперь он больше не работает.
В test.log я всегда получаю сообщение: nohup can't detach from console: no such file or directory
.
Если я просто запускаю ту же самую команду в bash напрямую, она работает нормально. Я много искал, но, похоже, я не могу найти ничего полезного для этой проблемы. Я вижу только обсуждение относительно Дженкинса, похоже, что они также видят аналогичную проблему.
Кто-нибудь знает, почему он начинает терпеть неудачу с Йосемити? Любой вход будет оценен.
Ответы
Ответ 1
Вы работаете в tmux? У меня просто была эта проблема, начался новый терминал без tmux, и это сработало нормально.
См. эту проблему с tmux, чтобы объяснить, почему это происходит. Это связано с причудой в OS X. https://github.com/tmux/tmux/issues/443
Ответ 2
У меня была аналогичная проблема при запуске команды на mac mini из входа ssh, я получил ошибку:
nohup: не может отсоединиться от консоли: Undefined error: 0
Я исправил проблему, удалив "nohup" и перенаправляя stdin, команда, которая работала и выжила "exit", выглядела так:
my_command < /dev/null > /dev/null 2> error.txt &
Ответ 3
Это сломалось для nohup и экрана с 10.11.6 → 10.12.6. Исправление состоит в том, чтобы включить UsePAM в файле /etc/ssh/sshd _config. Мы выяснили, что после ssh'ing и выполнения su - $USER, nohup будет работать. Затем, пытаясь использовать другие версии sshd и пытаясь получить пароль auth, обнаружил, что параметр UsePAM да исправил проблему (изменение версий sshd не помогло).