我使用以下代码在另一台机器上启动命令:
#!/bin/bash
/usr/bin/rsh -n $Host_Name "cat asdf.txt &"
我正在尝试使用以下命令获取cat命令的PID:
/usr/bin/rsh -n $Host_Name pid="$!"
但是当我回复$ pid时,它只是空白。我做错了什么?有没有更简单的方法来获取在另一台机器上执行的最后一个命令的PID?
由于
答案 0 :(得分:2)
你只能获得$!在您启动命令的shell中的backgrounded命令。如果你的命令没有向stderr输出任何内容,这可能有效:
/usr/bin/rsh -n $Host_Name "cat asdf.txt & echo $! >&2" 2> pidfile
启动命令的pid将在本地存储在'pidfile'中。
只是旁注:我永远不会使用rsh。它本质上是不安全的。我会改用ssh;)