Как использовать экран для выдачи команды в фоновом режиме через сеанс SSH

Я привык использовать терминалы linux и nohup over ssh, чтобы выдавать команды, которые выполняются в фоновом режиме, даже когда они вышли из сеанса ssh. По некоторым причинам nohup, кажется, сломан в последней версии MACOS. По этой причине я пытаюсь выполнить этот небольшой пример сценария с помощью экранной команды.

sleep 10
echo "this is my test file" > testfile

Этот файл сохраняется как скрипт tst. И тогда я выдаю следующую команду.

ssh sohaib@localhost screen -dm sh testscript

Однако ничего не происходит. Экран просто тихо выходит без записи в файл тестового файла. Если я запускаю это без SSH, он работает как хотелось бы. Что я здесь не так делаю?

1 ответ

Проблема в том, что после выхода из вашего скрипта экран выходит. -dm для демонов, то есть скриптов, которые продолжают работать.

Отображение экрана, выходящего через 10 секунд:

На удаленном хосте (файл исполняемый):

ttucker@merlin:~$ cat test.sh 
#!/bin/bash
echo derp > /tmp/test.txt
sleep 10

Команда на локальной машине:

[ttucker@localhost ~]$ ssh ttucker@merlin 'screen -dmS my_screen ~/test.sh'

После запуска.

На удаленной машине через несколько секунд после запуска экрана:

ttucker@merlin:~$ screen -ls
There is a screen on:
    23141.my_screen (11/21/2016 07:05:11 PM)    (Detached)
1 Socket in /var/run/screen/S-ttucker.

Через 10 секунд на удаленном компьютере:

ttucker@merlin:~$ screen -ls
No Sockets found in /var/run/screen/S-ttucker.

Модификация скрипта для продолжения работы и сохранение экрана вверх:

Если вы действительно запускаете сценарий, который нужно поддерживать, вы можете сделать следующее в сценарии:

#!/bin/bash
while true; do
    # Do something
    sleep 10
done

Это будет что-то делать, подождите 10 секунд, а затем повторите цикл.

Или отсоединение экрана вручную:

Вы можете SSH к удаленной машине, запустить экран, а затем нажмите Ctrl+A,D, Нажмите Ctrl и удерживайте, затем нажмите A затем нажмите D, Теперь вы можете выйти из сеанса SSH, и экран продолжит работать.

Другие вопросы по тегам