Бывают ситуации, когда вы хотите выполнить / запустить некоторые сценарии на удаленном компьютере / сервере (которые завершатся автоматически) и отключиться от сервера.
Например: скрипт, запущенный на блоке, который при запуске
- берет модель и копирует ее на удаленный сервер
- создает скрипт для запуска симуляции с моделью и передает его на сервер
- запускает скрипт на сервере и отключает
- Задача запускаемого таким образом сценария состоит в том, чтобы запустить симуляцию на сервере и после завершения (потребуется несколько дней) скопировать результаты обратно клиенту.
Я бы использовал следующую команду:
ssh remoteserver 'nohup /path/to/script `</dev/null` >nohup.out 2>&1 &'
@ CKeven, вы можете поместить все эти команды в один скрипт, отправить его на удаленный сервер и запустить следующим образом:
echo '#!/bin/bash
rm -rf statuslist
mkdir statuslist
chmod u+x ~/monitor/concat.sh
chmod u+x ~/monitor/script.sh
nohup ./monitor/concat.sh &
' > script.sh
chmod u+x script.sh
rsync -azvp script.sh remotehost:/tmp
ssh remotehost '/tmp/script.sh `</dev/null` >nohup.out 2>&1 &'
Надеюсь, это работает; -)
Edit:
Вы также можете использовать
ssh user @ host 'screen -S SessionName -d -m "/ path / to / executetable"'
, который создает отдельный сеанс экрана и запускает целевую команду внутри него