我有一个应用程序,应该在启动时运行。
我为该应用程序创建了系统用户,useradd -r serviceUser
并让他成为应用程序目录的所有者。
然后我编写启动脚本并将其添加到自动启动中update-rc myserver.sh defaults
我的脚本/etc/init.d/myserver.sh
#!/bin/sh
start() {
cd "/my_server_dir/"
su -c "./myServer" serviceUser
}
if [ "x$1" = "xstart" ]
then
start
exit 0
fi
当我以真实登录用户身份运行它时
/etc/init.d/myserver.sh start
,提示询问我密码。但我没有设置任何密码。
我认为自己在某些地方是错误的。
答案1
不确定您期望什么,调用时su
总是会提示输入密码,除非您以 root 身份运行它(它会在不提示的情况下执行所有操作)或使用 sudo 运行它(它会提示您的用户密码)。
因此,如果您想使用 su -c 来使用该 serviceUser 且不需要 sudo 权限,请运行sudo passwd serviceUser
并设置密码。