我的初始化脚本(/etc/init.d)应该将我的可执行jar文件作为serviceat启动运行。我需要这个脚本由指定用户运行。
su& amp; sudo是可能的,但它分裂了这个过程,我不喜欢这个。
还有另一种方法可以将此脚本作为受限用户运行吗?
这是我的init脚本的相关部分:
#!/bin/bash
APP_NAME="myapp"
APP_HOME=/home/user1/jetty
JAVA_HOME=/opt/local/java/latest
echo "Service $APP_NAME - [$1]"
echo "JAVA_HOME -> $JAVA_HOME"
echo "APP_HOME -> $APP_HOME"
echo "APP_NAME -> $APP_NAME"
function start {
if pkill -0 -f $APP_NAME.jar > /dev/null 2>&1
then
echo "Service [$APP_NAME] is already running. Ignoring startup request."
exit 1
fi
echo "Starting application..."
cd $APP_HOME
nohup $JAVA_HOME/bin/java -jar $APP_HOME/$APP_NAME.jar\
< /dev/null > $APP_HOME/logs/app.log 2>&1 &
}
答案 0 :(得分:1)
在Ubuntu上,你应该使用程序start-stop-daemon
。它具有以不同用户身份启动守护进程,管理pid文件,更改工作目录以及初始化脚本通常需要的任何其他内容的选项。