Ubuntu以非root用户身份运行脚本

时间:2015-03-04 16:36:13

标签: linux bash ubuntu sudo su

我的初始化脚本(/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 &
}

1 个答案:

答案 0 :(得分:1)

在Ubuntu上,你应该使用程序start-stop-daemon。它具有以不同用户身份启动守护进程,管理pid文件,更改工作目录以及初始化脚本通常需要的任何其他内容的选项。