我尝试在其路径中启动应用并获取其进程ID:
(cd /opt/server/TrackServer/release && ./TrackServer&) && echo $!
但我总是错误的PID。
即得到:
$ (cd /opt/server/TrackServer/release && ./TrackServer&) && echo $!
5078
$ ps aux | grep TrackServer
user 5250 0.6 0.0 153340 7824 pts/0 S 20:09 0:00 ./TrackServer
user 5253 0.0 0.0 14868 976 pts/0 S+ 20:09 0:00 grep --color=auto TrackServer
如何在其路径中调用该进程并获取它的pid?
答案 0 :(得分:2)
如果只有一个正在运行,那么使用pidof TrackServer
答案 1 :(得分:2)
TrackServer
是(...)
引发的子shell的后台进程,而不是您的脚本,因此脚本中的$!
会存储不同的PID。
尝试
pushd /opt/server/TrackServer/release && { ./TrackServer & echo $!; popd; }