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