Сценарий запуска Ubuntu от имени пользователя без полномочий root

У меня есть сценарий инициализации (/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 &
}

person drenda    schedule 04.03.2015    source источник
comment
Задавайте конкретные вопросы по Ubuntu на askubuntu.com или более общие вопросы по Unix/Linux на unix.stackexchange.com . Удачи.   -  person shellter    schedule 04.03.2015


Ответы (1)


В Ubuntu для этого следует использовать программу start-stop-daemon. У него есть опции для запуска демонов от имени разных пользователей, управления pid-файлами, смены рабочего каталога и почти всего остального, что обычно требуется сценариям инициализации.

person ccarton    schedule 04.03.2015