start-stop-daemon

start-stop-daemonOpenRC计划的一部分,这个程序最先出现在Debian系的Linux发行版中,这里有个比较古老的手册页面,更详细更直观的办法当然是通过man start-stop-daemon来查看手册了。

start-stop-daemon最基本的两个功能就是--start--stop,简写为-S-K,然后再加上一个-s|--signal来给进程发送信号,功德圆满。

  • -x, --exec daemon,daemon就是真正要执行的进程脚本,比方说启动nginx,那么就是start-stop-daemon -x nginx
  • -p, --pidfile pidfile,指定pid文件,至于pid文件的用途就多了,stop,status都少不了它。
  • -n, --name,如果没有指定pid文件,那么就要通过指定name来停止进程了。
  • -u, --user user[:group],指定脚本用哪个用户或用户组执行,init脚本是必须使用root权限来执行的,但是它fork出来的子进程我们一般会选择一个权限较低的用户。
  • -b, --background,强制脚本在后台执行。
  • -m, --make-pidfile,这个一般和-b配合,用于生成pid文件
  • -d, --chdir path,切换进程的主目录,这个在构建守护进程的时候是很常用的。
  • -r, --chroot path,在某些安全性要求较高的情况下,我们就需要用到chroot将进程工作环境与物理环境完全隔离开来。
  • -1, --stdout logfile,将标准输出记录到log文件,与之相对应的就是-2, --stderr标准错误流。
  • -w, --wait milliseconds,进程启动后,有这个参数会等待几毫秒来检测进程是否仍然存活。

-x daemon后面跟的执行脚本必须只能是一个文件名,有些程序运行时还需要指定一些参数,比如nginx -c file来指定nginx的配置文件,使用start-stop-daemon -x "nginx -c file"是会报错的,这些程序内的参数以另一种方式加载,start-stop-daemon -x daemon -- $ARGV,这里的双横线--后面跟的所有参数就会被带到程序中了,比如start-stop-daemon -x nginx -c /etc/nginx.conf

posted @   shubin  阅读(4418)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示