我需要通過SSH和sudo
遠程啓動的進程(此處爲sleep 20
)的進程ID。獲取通過ssh使用sudo啓動的進程的PID
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