Как я могу выполнить отсоединенную команду с sudo по ssh?

Я хочу запустить некоторый скрипт через 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"

Это не работало также, даже при том, что команда работает, когда я ввожу его в сервер локально. Как я могу сделать это затем?

1
задан 22 January 2019 в 19:01

2 ответа

Я сделал маленький обзор и нашел этот подобный вопрос на Переполнении стека. Вообще Вы должны добавить путь к сценарию или должны войти в каталог, где сценарий расположен:

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'
1
ответ дан 7 December 2019 в 15:08

Можно попытаться использовать disown избегать процесса, уничтожаемого после закрытия Вас ssh сессия.

0
ответ дан 7 December 2019 в 15:08

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

Похожие вопросы: