Tôi đang cố gắng khởi chạy ở chế độ nền công việc trên máy từ xa và lấy PID của nó để tôi có thể xóa nó sau này. Những gì tôi đã đưa ra cho đến nay là như sau:Bắt pid của một công việc được khởi chạy ở chế độ nền từ xa
#!/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"
Thật không may nó không hoạt động. Tôi đang nhận được một số
bash: syntax error near unexpected token `;'
nhưng tôi không biết cú pháp đúng là gì.
Đơn giản chỉ cần: 'vmstat 1 1000> vmstat.log &; echo $! ' thậm chí không cục bộ. Hãy nhìn vào nó. –
Vâng tôi biết. Vì vậy, tôi cần sửa chữa cho 'vmstat 1 1000> vmstat.log &; echo $! ' hoặc tôi cần lấy PID của công việc từ xa thông qua một số cơ chế khác. – davitenio
@davitenio Không PID kết thúc dưới dạng PID của lệnh ssh cục bộ, không phải lệnh vmstat từ xa? –