Я хочу выполнить сценарий, start.sh на удаленном сервере, который запускает это:
nohup node server.js &
Наивно, я вызываю SSH следующим образом:
ssh myserver <<EOF./start.sh &EOF
Это запускает сценарий, но оставляет сеанс подключенным. Я хочу выполнить этот шаг с другими командами в скрипте, так что это бесполезно.
Как я могу подключиться по SSH к удаленной машине, запустить nohup команду в фоновом режиме, а затем отключиться? Я полагаю, я мог бы перевести сам процесс SSH в фоновый режим, но это кажется неправильным.
записка: вы можете перевести ssh (клиент) в фоновый режим, поместив & в конце, но вы не увидите выходных данных. Если вы действительно хотите это сделать, перенаправьте stdout/stderr в файл на случай, если вам нужно проверить ответ с удаленного хоста.
Почему бы просто не использовать tmux или screen и не покончить с этим? Например:
$ tmux new -s SessionNameHere$ nohup /path/to/your/script.sh
Это практично, если это что-то, что будет постоянно зацикливаться или займет некоторое время, чтобы закончить. Вы можете отключиться от сеанса, и он останется активным.