我需要通过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