1.启动的时候将进程号写入文件:
#!/bin/sh
java -jar /usr/ScriptCheck.jar &
echo $! > /var/run/ScriptCheck.pid
2.停止的时候读取文件得到进程号:
#!/bin/sh
PID=$(cat /var/run/ScriptCheck.pid)
kill -9 $PID
比如缓存的启动停止脚本可以这样:
启动:
/opt/memcached-1.4.7/memcached -d -m 256 -u root -p 11211 -c 256 -P /opt/memcached-1.4.7/memcached.pid
停止:
#!/bin/sh
PID=$(cat /opt/memcached-1.4.7/memcached.pid)
kill -9 $PID
有些是调用软件自身的start.sh文件启动,如果他有返回pid的参数的还好,不然就只能具体问题具体分析了。比如jboss的话,可以修改 conf/jboss-service.xml 之中的 port,把default设置为1099,node1设置为1199,然后使用命令改用 ./shutdown.sh -s jnp://localhost:1199 就可以停止node1的启动进程了。