На этот вопрос уже есть ответ здесь:
У меня есть скрипт, который запускается при запуске из rc.local
, я никуда не перенаправляю вывод.
Когда я впервые написал его, я запустил его в оболочке, он работал, как я ожидал, и постоянно выводил символы из stdout на экран, поэтому я добавил path/to/myscript
в rc.local
и больше ничего не думал об этом.
Недавно, когда я запускал php скрипт в командной строке через SSH shell, я заметил, что когда были проблемы с соединением (между моим терминалом и SSH сервером), это означало, что stdout с точки зрения php скрипта было некуда девать и скрипт "застревал", пока соединение не улучшалось и stdout снова не начинал работать.
Это заставило меня задуматься, не следует ли мне действительно направлять вывод моего стартового скрипта куда-нибудь, хотя бы в /dev/null
, если вывод меня не интересует.
Но главный вопрос в том, каковы последствия того, что я этого не делаю? Есть ли какой-то буфер, который станет "забитым" и помешает скрипту работать, или вывод просто будет проигнорирован?
Обычно системный запуск, пишущий сценарий stdout, направлен к консольному устройству, если это не явно непосредственно в другом месте в рамках определенного сценария запуска.