我想在后台启动远程计算机上的作业并获取其PID,以便稍后可以杀死它。到目前为止我所得到的是以下几点:获取在后台远程启动的作业的pid
#!/bin/bash
IP=xxx.xxx.xxx.xx
REMOTE_EXEC="ssh $IP -l root"
# The following does NOT work, I am trying to get the PID of the remote job
PID=`$REMOTE_EXEC 'vmstat 1 1000 > vmstat.log & ; echo $!'`
# Launch apache benchmark
ab -n 10 http://$IP/
$REMOTE_EXEC "kill $PID"
不幸的是,它不起作用。我得到一个
bash: syntax error near unexpected token `;'
但我不知道什么是正确的语法将是。
只需: '的vmstat 1 1000> vmstat.log&; echo $!` 甚至不在本地。看看它。 – 2009-06-25 11:11:16
是的,我知道。所以我需要修复'vmstat 1 1000> vmstat.log&; echo $!'或者我需要通过其他一些机制来获得远程作业的PID。 – davitenio 2009-06-25 11:16:15
@davitenio不是PID最终成为本地ssh命令的PID,而是远程vmstat命令? – 2014-03-17 18:19:43