Я хочу запустить некоторый скрипт через ssh и отсоединить его, таким образом, он работает даже, после ssh сессия закрывается. Я должен сделать это с sudo.
Я могу запустить некоторый скрипт, но я не могу отсоединить его. Я попробовал следующие команды:
ssh 10.0.139.120 -t "sudo -b nohup some_script"
и
ssh 10.0.139.120 -t "sudo nohup some_script &"
Ни один из обработанных вышеупомянутых. Каждый раз я добираюсь, передают "Соединение с 10.0.139.171 закрытыми". и никакой процесс не работает на сервере.
Я также попытался сделать это с экраном:
ssh 10.0.139.120 -t "sudo screen -S script -md some_script"
Это не работало также, даже при том, что команда работает, когда я ввожу его в сервер локально. Как я могу сделать это затем?
Я сделал маленький обзор и нашел этот подобный вопрос на Переполнении стека. Вообще Вы должны добавить путь к сценарию или должны войти в каталог, где сценарий расположен:
ssh remote-host -t "sudo -b sh -c 'nohup /path/some_script > /dev/null 2>&1 &'"
ssh remote-host -t "sudo -b sh -c 'cd /path; nohup ./some_script > /dev/null 2>&1 &'"
Без sh -c
или bash -c
амперсанд &
в конце повреждает команду в некотором роде.
Мне не могло удаться использовать disown
с этой целью, но setsid
работы хорошо:
ssh remote-host -t 'sudo -b setsid /path/some_script'
Можно попытаться использовать disown
избегать процесса, уничтожаемого после закрытия Вас ssh
сессия.