【问题标题】:Ubuntu run script as non-root userUbuntu以非root用户身份运行脚本
【发布时间】:2015-03-04 16:36:12
【问题描述】:

我有一个初始化脚本 (/etc/init.d),它应该在启动时将我的可执行 jar 文件作为服务运行。我需要这个脚本由指定的用户运行。

使用 su & sudo 是可能的,但它拆分了进程,我不喜欢这样。

还有其他方法可以作为受限用户运行此脚本吗?

这是我的初始化脚本的相关部分:

#!/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 &
}

【问题讨论】:

  • 请将 Ubuntu 特定问题发布到 askubuntu.com 或更一般的 Unix/Linux 问题到 unix.stackexchange.com。祝你好运。

标签: linux bash ubuntu sudo su


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 2011-03-10
    • 1970-01-01
    • 2011-10-30
    • 2017-07-08
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多