Как мне постоянно входить в систему на сервере Synology (custom Linux) через SSH? Я пытаюсь заставить программу работать на сервере постоянно, но когда я закрываю окно SSH со своего компьютера, программа также убивается. Есть ли способы обойти это? Благодарю.
3 ответа
Используйте утилиту для screen
. Если вы используете дистрибутивы на основе Debian или Ubuntu, установите его через sudo apt-get install screen
. Чтобы запустить его, введите screen
и нажмите Enter на информационном экране. Запустите ваши команды здесь.
Если вы когда-либо отключитесь, вы можете вернуться обратно, набрав screen -rd
и нажав Enter. Это вернет вас к сеансу, который все еще работает. Отлично подходит для переноса вашего сеанса на другой терминал или соединение SSH.
В другом Linux вы можете просто сделать это, выполнив команду без pty (то есть без опции ssh -t):
ssh syno 'sleep 999 </dev/null >&/dev/null &'
Я не использую ни windows, ни putty, но если это ваш случай, я вижу, что в пакете putty есть команда plink :
plink -ssh -l root -i mykey.ppk syno 'sleep 999 </dev/null >&/dev/null &'
Кроме того, вы должны иметь возможность запустить вашу команду из замазки с
nohup sleep 999 </dev/null &
Использование «nohup» и «screen» - это хорошие решения, позволяющие убедиться, что задание, которое вы запускаете вручную, продолжает выполняться.
Если вы хотите, чтобы ваш процесс пережил перезагрузки, вы должны убедиться, что он запускается после перезагрузки. Есть несколько решений для этого. На моей станции Synology я обнаружил, что файлы, начинающиеся с "S" в каталоге «/volume1/startup», запускаются как сценарии запуска в каталоге «init.d». Вы можете увидеть это в скрипте /etc /rc:
/etc/rc: if [ -d /volume1/startup ]; then
/etc/rc: for startsh in /volume1/startup/S* ; do
который работает, если /etc/synoinfo.conf имеет
supportstartupd="yes"
Это также переживет переустановку системы Synology.