1、关于linux启动应用程序脚本,自动获取PID并存入文件
#!/bin/bash
DIRNAME=`dirname $0`
AppRoot=`cd $DIRNAME/../App; pwd`
pid=$AppRoot/pid_0
if [ -s $pid ] && kill -0 `cat $pid` 2>/dev/null
then
echo "[Warning: Service is Running Now]"
else
echo "[Sevice Starting...]"
"$JAVA" XXX.jar 2>> /dev/null & echo $! > $pid
fi
2、对应关闭脚本
#!/bin/bash
DIRNAME=`dirname $0`
AppRoot=`cd $DIRNAME/../App; pwd`
pid=$AppRoot/pid_0
echo "Shutdown Service..."
kill -9 `cat $pid`
3.java程序内获取当前应用PID
FileWriter fw = null;
try {
String name = ManagementFactory.getRuntimeMXBean().getName();
String pid = name.split("@")[0];
File directory = new File("");//设定为当前文件夹
String path = directory.getAbsolutePath();
fw = new FileWriter(path + "/pid_0");
fw.write(pid);
fw.flush();
} catch (IOException e) {
logger.fatal(e);
} finally {
try {
if (null != fw) {
fw.close();
}
} catch (IOException e) {
logger.fatal(e);
}
}