获取其他机器上运行的最后一个命令的PID

时间:2012-09-28 11:57:37

标签: linux bash pid rsh

我使用以下代码在另一台机器上启动命令:

#!/bin/bash
/usr/bin/rsh -n $Host_Name "cat asdf.txt &"

我正在尝试使用以下命令获取cat命令的PID:

/usr/bin/rsh -n $Host_Name pid="$!"

但是当我回复$ pid时,它只是空白。我做错了什么?有没有更简单的方法来获取在另一台机器上执行的最后一个命令的PID?

由于

1 个答案:

答案 0 :(得分:2)

你只能获得$!在您启动命令的shell中的backgrounded命令。如果你的命令没有向stderr输出任何内容,这可能有效:

/usr/bin/rsh -n $Host_Name "cat asdf.txt & echo $! >&2" 2> pidfile

启动命令的pid将在本地存储在'pidfile'中。

只是旁注:我永远不会使用rsh。它本质上是不安全的。我会改用ssh;)