我想知道是否有更好的方法来制作一个守护进程等待只使用sh的东西:
#! /bin/sh
trap processUserSig SIGUSR1
processUserSig() {
echo "doing stuff"
}
while true; do
sleep 1000
done
Run Code Online (Sandbox Code Playgroud)
特别是,我想知道是否有任何方法摆脱循环,仍然有东西听取信号.
我正在尝试以Alpine Docker映像中的不同用户身份运行一些脚本。在登录时,devuser我希望setup.sh以root和app.sh身份运行appuser。由于我已经读到不能在脚本文件上使用SUID,所以我有几个C程序,setup和app,它们会调用脚本。我可以setup按,root但不能app按appuser。
这是目录的内容。请注意,应用程序和设置在程序上设置了SUID位。我尝试在脚本上设置SUID,但这没有用。
/opt/app $ ls -l
total 24552
-r-sr-xr-x 1 appuser appgroup 10632 Jun 27 12:59 app
-r-------- 1 appuser appgroup 25101769 Jun 27 12:59 app.jar
-r-xr-xr-- 1 appuser appgroup 327 Jun 27 12:59 app.sh
-r-------- 1 appuser appgroup 316 Jun 27 12:59 application.yml
-r-sr-xr-x 1 root root 10632 Jun 27 12:59 setup
-r-xr-xr-- 1 root root …Run Code Online (Sandbox Code Playgroud)