Я хочу запустить bash скрипт на сервере в фоновом режиме?
Я знаю, что могу использовать ssh для запуска скрипта, но скрипт может длиться долго, так что я могу запустить его в фоновом режиме? Если так, как это сделать?
Чтобы запустить команду в фоновом режиме в bash, вы используете &
в конце.
./myscript.sh -opt1 > /tmp/myscript.out &
Одним из вариантов является использование менеджера экрана, такого как GNU Screen. Вы запускаете это (запустив screen
, а затем запускаете процесс внутри него). После этого вы можете просто отключить сеанс SSH - процесс продолжится.
Позже вы можете восстановить соединение и запустить screen -r
для возобновления. Он будет перерисовывать все так, как вы никогда даже не отключались - позволяя вам увидеть результаты вашего процесса.
nohup
- ваш друг, но в соответствии с этой записью в Википедии вы также можете использовать screen
.
nohup script &
exit