首页 > 学院 > 操作系统 > 正文

java启动脚本pid问题

2024-06-28 13:27:21
字体:
来源:转载
供稿:网友
java启动脚本pid问题

在写一个脚本,以daemon service方式运行一个java程序。

直接以nohup执行,没有问题,pid会写入到文件。

1 nohup $JAVA_CMD -classpath .:${APP_HOME}/lib/test.jar com.test.example.Startup > /$APP_HOME/err.log 2>&12 echo $!>$APP_PID

以su执行,此时pid不是java进程的id,而是shell的进程id

1 su - root -c "nohup $JAVA_CMD -classpath .:${APP_HOME}/lib/test.jar com.test.example.Startup > /$APP_HOME/err.log 2>&1 & "2 echo $!>$APP_PID

解决:可以将 echo $!>APP_PID 放在 nohup后面

1 JAVA_CMD=/usr/local/jdk1.7.0_10/bin/java2 APP_HOME=/usr/local/test3 APP_PID=$APP_HOME/test.pid4 su - root -c "nohup $JAVA_CMD -classpath .:${APP_HOME}/lib/test.jar com.test.example.Startup > /$APP_HOME/err.log 2>&1 & echo /$! > $APP_PID"

注意, echo /$! ,要加转义符号


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表