【发布时间】:2015-02-16 16:39:15
【问题描述】:
主机 xyz 上的以下本地命令提供以下正确输出
taskset -p `ps -ef | grep ripit | grep -v grep| awk '{print \$2}'`
pid 21352's current affinity mask: 1
当我运行以下命令并 ssh 到 xyz 主机时,我也得到正确的输出
ssh xyz "ps -ef | grep ripit | grep -v grep |awk '{print \$2}'"
21352
但是,当我添加 taskset 命令并在主机 xyz 主机上远程运行时,我得到了这个不正确的输出。
ssh xyz "taskset -p `ps -ef | grep ripit | grep -v grep | awk '{print \$2}'`"
sched_getaffinity: No such process
failed to get pid 27599's affinity
bash: line 1: 32127: command not found
我尝试了许多不同的单引号和双引号组合,并且到处使用转义字符都无济于事。任何人都可以帮忙吗?
谢谢
【问题讨论】:
-
您是否尝试过使用另一个子shell?也许
$(ps -ef| grep ripit | grep -v grep | awk '{print $2}') -
我确实尝试过> 我必须添加 (),然后我必须为 ssh xyz 使用转义字符 "taskset -p `ps -ef | grep ripit | grep -v grep |awk '{ print \$2}'` .. 它确实提供了答案,但它也产生了垃圾。输出开始说 taskset 命令不正确并给出了所有选项,然后它实际上在 PID 上执行命令。所以至少我已经走得更远了