可以使用 nohup 将某一程序放置在后台一直运行,就像一个服务那样。
如果在一个脚本中这么做,想要获得被放置在后台的服务 PID 的话,可以这样做:
#!/bin/sh
Server=(my_server_1 my_server_2 ... )
for server in ${Server[*]}
do
> ../Server_PID.now
nohup ./$server &
ps -elf | awk '$5=='$$' && $NF~/^\.\/'$server'$/ {print "'$server'",$4}' >> ../Server_PID.now
done
这样,每启动一个服务,那么该服务的服务名和 PID 就都被写入了 ../Server_PID.now 文件中。