首頁>Server>source

我正在尝試通過ssh執行單个遠端命令以进行除錯設置.這不会執行正確的命令(我看不到輸出,但是gdbserver似乎缺少PID):

ssh -t [email protected] "ps -A | grep myprocess | awk '{print $1}' | xargs -I{} gdbserver --attach 0.0.0.0:52159 {}"

在进行本地操作時:

ps -A | grep myprocess | awk '{print $1}' | xargs -I{} sudo gdbserver --attach 0.0.0.0:52159 {}

在解析中哪裏出問题了?

最新回復
  • 7月前
    1 #

    我自己尝試了一下,並通過插入echo命令进行了除錯:

    ssh -t [email protected] "ps -A | grep rsyslogd | awk '{print $1}' | xargs -I{} echo gdbserver --attach 0.0.0.0:52159 {}"
    

    應该只是PID的最後一部分是:

    1209 ?        00:00:05 rsyslogd
    

    我的猜測是awk中的$符號被bash解釋為某个地方並變成空字元串,因此awk命令只是 {print}

    在$之前添加一个反斜杠以修複它,並产生仅包含PID的最终命令。

    ssh -t [email protected] "ps -A | grep rsyslogd | awk '{print \$1}' | xargs -I{} echo gdbserver --attach 0.0.0.0:52159 {}"
    

  • windows:我如何找出為什麼某些埠被排除在外並删除该排除?
  • linux:Postfix中繼迴圈迴到我自己