gpt4 book ai didi

linux - 通过 ssh 获取以 sudo 启动的进程的 PID

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:04 25 4
gpt4 key购买 nike

我需要通过 SSH 和 sudo 远程启动的进程(此处为 sleep 20)的进程 ID。

插入

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

有什么建议说明为什么两台机器有这种不同的行为吗?

信息:我知道清除密码的风险,但它是隔离测试网络中的共享帐户。

最佳答案

是这样的吗?

$ remote_pid=$(ssh mauro@planck 'sleep 20 > /dev/null 2>&1 & echo $!')
$ echo $remote_pid
13878

或者...

$ remote_pid=$(ssh mauro@planck 'echo secret | sudo -S sleep 20 > /tmp/log 2>&1  & echo $!')

关于linux - 通过 ssh 获取以 sudo 启动的进程的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34904263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com