मैं पृष्ठभूमि में एक दूरस्थ मशीन पर एक नौकरी लॉन्च करने और इसकी पीआईडी प्राप्त करने की कोशिश कर रहा हूं ताकि मैं इसे बाद में मार सकूं। जो मैंने अभी तक किया है वह निम्नलिखित है:पृष्ठभूमि में लॉन्च की गई नौकरी की पिड प्राप्त करना
#!/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 $! ' स्थानीय रूप से भी नहीं है। इस पर एक नज़र मारो। –
हाँ मुझे पता है। तो मुझे या तो 'vmstat 1 1000> vmstat.log और' के लिए एक फिक्स की आवश्यकता है; echo $! ' या मुझे किसी अन्य तंत्र के माध्यम से रिमोट जॉब की पीआईडी प्राप्त करने की आवश्यकता है। – davitenio
@davitenio स्थानीय ssh कमांड के पीआईडी के रूप में समाप्त नहीं होता है, रिमोट vmstat कमांड नहीं? –