gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:46 25 4
gpt4 key购买 nike

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

关于linux - Ubuntu 以非 root 用户身份运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com