2015-03-18 5 views
11

Я использую nohup для запуска команды из приложения php (у меня есть веб-страница, которая отправляет запрос POST на php server, чтобы запустить сценарий оболочки в фоновом режиме).nohup не работает с OS X Yosmite - получить ошибку «не может отсоединиться от консоли нет такого файла или каталога»

Это что-то вроде

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 напрямую, она работает нормально. Я много искал, но, похоже, я не могу найти ничего полезного для этой проблемы. То, что я вижу только discussion относительно Дженкинса, похоже, что они также видят аналогичную проблему.

У любого есть идеи, почему он начинает терпеть неудачу с Йосемити? Любой вход будет оценен.

+0

Возможно, вам стоит попросить об этом вместо http://apple.stackexchange.com/. –

+0

Я тоже запускаю Yosemite, и я проверил - nohup отлично работает на моем компьютере, я пробовал называть его таким же образом. Но зачем вам это нужно? Почему бы просто не выполнить exec ('/ bin/sh /home/user/test.sh> /home/user/test.log 2> & 1 &')? Все nohup делает это, чтобы игнорировать сигналы SIGHUP, но я предполагаю, что вы все равно не используете никаких сигналов. Фоновый режим запускается символом '&' в конце, а не nohup. –

+0

Спасибо. Да, я удалил nohup, он работает нормально. Но на всякий случай в будущем мне это нужно, тогда мне будет тяжело ... Для меня это действительно странно – weilan

ответ

19

Вы работаете в tmux? У меня просто была эта проблема, начался новый терминал без tmux, и это сработало нормально.

См. Эту проблему tmux, чтобы объяснить, почему это происходит. Это связано с причуда в OS X. https://github.com/tmux/tmux/issues/443

+3

Знаете ли вы, почему tmux вызывает эту проблему? –

+0

Можете ли вы быть более сложными? – Sibidharan

+0

lifesaver спасибо –

1

у меня была аналогичная проблема при выполнении команды на Mac Mini от SSH входа, ошибка я получил:

nohup: can't detach from console: Undefined error: 0

Я исправил эту проблему удаление «поЬир» и перенаправляет STDIN, команда, которая работала и выжила «выход» выглядели так:

my_command </dev/null> /dev/null 2> error.txt & 
+0

К сожалению, команда команды была обработана обработкой текста, команда выглядела так: \ < /dev/null >/dev/null 2> error.txt & –

0

Это сломало для поЬир и экрана от 10.11.6 -> 10.12.6. Исправление состоит в том, чтобы включить UsePAM в файле/etc/ssh/sshd_config. Мы выяснили, что после ssh'ing и выполнения su - $ USER, nohup будет работать. Затем, пытаясь использовать другие версии sshd и пытаясь заставить пароль работать, обнаружил, что параметр UsePAM да исправил проблему (изменение версий sshd не помогло).

 Смежные вопросы

  • Нет связанных вопросов^_^