Обратите внимание на перенаправления в этой строке:
webapp="npm start 1>/dev/null 2>&1 &"
Теперь рассмотрим два фоновых процесса:
nohup $server &
nohup $webapp &
One из них - тот, который использует $webapp
- имеет встроенные перенаправления для stdout и stderr. Но что для $server
установлено?
server="node /root/danskesn/server/server.js"
Упражнение: есть ли здесь перенаправления? Если так, найдите их. (Там может быть , внутри node
или /root/danskesn/server/server.js
. Хотя я не верю, что они есть.)
Если есть , то нет перенаправления, стандартный вывод и стандартный вывод ошибок из этой команды nohup $server &
по-прежнему подключены к команде git push
в вашей сети. Ваш git push
будет ожидать любого вывода и скопировать его в ваш сеанс оболочки с префиксом слова remote:
. Ваш git push
прекратит работу только тогда, когда больше нет доступных выходных данных, т. Е. Когда nohup $server &
закроет свои выходные данные и потоки ошибок, вероятно, завершив полностью.