Мне нужен идентификатор процесса процесса (здесь sleep 20
), запущенный удаленно через SSH и sudo
.Получить PID процесса, начатого с sudo через ssh
date
прилагается для иллюстрации продолжительности соединения SSH. Разумеется, без подключения к моей удаленной машине тоже нет процесса.
$ date; ssh pc1 "sleep 20 & echo \$!"; date # works
Mi 20. Jan 16:18:29 CET 2016
11540
Mi 20. Jan 16:18:50 CET 2016
$ date; ssh pc1 "echo password | sudo -S sleep 20"; date # works
Mi 20. Jan 16:20:44 CET 2016
[sudo] password for lab: Mi 20. Jan 16:21:04 CET 2016
$ date; ssh pc1 "echo password | sudo -S sleep 20 & echo \$!"; date # does not
Mi 20. Jan 16:21:55 CET 2016
11916
Mi 20. Jan 16:21:56 CET 2016
На второй машине последняя, полная команда работает отлично:
$ date; ssh pc2 "echo password | sudo -S sleep 20 & echo \$!"; date
Mi 20. Jan 16:23:40 CET 2016
6035
[sudo] password for lab: Mi 20. Jan 16:24:01 CET 2016
Любое предположение, почему это различное поведение двух машин?
Информация: Я знаю риск четких паролей, но это общая учетная запись в изолированной тестовой сети.
Что вы подразумеваете под "не работает"? –
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что он более подходит для [Unix & Linux] (http://unix.stackexchange.com/) Stack Exchange. –
Это означает, что мой процесс не запущен на удаленной машине. Либо он убит из-за закрытой связи, либо наоборот. – Chickenmarkus