Мне нужно запустить бесконечную петлю bash для background задача мониторинга на удаленном сервере. Я использую Python Paramiko для этой работы и выполнить следующую команду:Запуск бесконечной петли Bash в фоновом режиме с Paramiko
s = paramiko.SSHClient()
s.load_system_host_keys()
s.connect(hostname, port, username, password)
cmd = 'bash -c "while :; do cat /some/file >>/tmp/sca.mon; sleep 1 ; done" &'
(stdin, stdout, stderr) = s.exec_command(cmd)
Однако это не работает по какой либо причине. Он просто застрял на линии exec_command
. Как заставить paramiko покинуть удаленный сервер, когда он отправляет команду bash фона и запускает следующий, как? Примечание: Я также пробовал nohup bash -c
, но он не работает, пока я использую &
, чтобы запустить команду, запущенную в фоновом режиме на удаленном сервере.
Кажется мне, что вся необходимая информация находится здесь: http://unix.stackexchange.com/questions/30400/execute -remote-commands-full-detaching-from-the-ssh-connection – KostasT
@KostasT Мне нелегко найти недостающую часть головоломки на этой странице. Не могли бы вы подробнее рассказать? – ARH