Я хочу отредактировать свой файл rc.local , чтобы запустить несколько сеансов сервера, каждый на своем собственном экране GNU. Однако всякий раз, когда я останавливаю сервер, экран закрывается.
В настоящее время у меня есть:
screen -dmS test ~/tmp/runserver.sh
с этим внутри runserver.sh :
node ~/dev/mouser/app.js
Как получить экран, чтобы остаться в живых после завершения переданной команды или сценария?
Два пути. Либо вызовите оболочку для запуска сценария, которая затем заменяет себя (используя встроенную функцию exec
) на интерактивную оболочку после завершения сценария
screen -dmS test bash -c '~/tmp/runserver.sh; exec bash'
, либо оставьте текущую экранную команду и поместите команду exec bash в ваш скрипт runserver.sh.
#!/bin/bash
node ~/dev/mouser/app.js
exec bash
(Кстати, нет смысла иметь расширение для скрипта. Это просто даст вам головную боль зависимости, если вы переписываете ее на другом языке. Если вы посмотрите в / bin и / usr / bin вы найдете множество скриптов sh, bash и python, ни один из которых не имеет расширения .sh, .bash или .py)