Dav*_*der 11 linux bash ubuntu init
我正在尝试在bash(Ubuntu)中创建一个init脚本,该脚本在特定用户下启动服务.
除此之外还有更好的方法吗?
su - <user> -c "bash -c 'cd $DIR ;<service name>'"
Run Code Online (Sandbox Code Playgroud)
Car*_*arl 20
Ubuntu使用start-stop-daemon已经支持此功能的.
使用/etc/init.d中的框架文件:
sudo cp /etc/init.d/skeleton /etc/init.d/mynewservice
适当地编辑我的新服务.
将以下参数添加到调用start-stop-daemon的行中:
--chuid username:group
例:
更改
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
至
start-stop-daemon --start --quiet --chuid someuser:somegroup --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
最后,注册您的服务并启动它:
update-rc.d mynewservice defaults 99 && service mynewservice start
有关start-stop-daemon的更多信息,请点击此处
或者,您可以使用文件daemon中定义的函数/etc/init.d/functions:
daemon --user=<user> $DIR/program
Run Code Online (Sandbox Code Playgroud)
如果你研究一下它的语法,你可以做其他事情,比如定义 PID 文件位置、设置良好级别等等。否则,它对于将服务作为守护进程启动非常有用。使用 启动的服务daemon可以很容易地被另一个函数 function 终止killproc。
| 归档时间: |
|
| 查看次数: |
54323 次 |
| 最近记录: |