man start-stop-daemon

Linux 系统守护进程管理 --(start-stop-daemon) 目录 一、功能 二、格式 2.1 搜索匹配的过程 2.2选项 2.2.1匹配选项 2.2.2只对–start有效的选项 2.2.3只对–停止有效的选项 2.2.4其他选项 三、应用 3.1 启动进程 3.1.1 强制启动 3.1.2 默认启动 3.1.3 启动进程,并生成进程的PID文件 3.2停止进程 3.2.1 使用进程名称停止进程 3.2.2 使用PID文件停止进程 一、功能 启动或停止系统守护进程。 二、格式 start-stop-daemon [– 阅读详情

用man start-stop-daemon 这个程序用来启动和关闭系统级别的进程。

下面我用该命令启动我自己编译的nginx程序:

start-stop-daemon --start --quiet --pidfile /opt/nginx.pid --exec /home/chenshu/nginx/bin/nginx  -- -c /home/chenshu/nginx/etc_nginx/nginx.conf 

注意,这里都使用绝对路径,相对路径会有问题。

  1. --pidfile 指定了保存进程id的文件 /opt/nginx.pid
  2. --exec 指定了可执行程序
  3. -- 之后加上传递给nginx的参数 -c /home/chenshu/nginx/etc_nginx/nginx.conf

单独运行nginx的时候,还可以指定 -t参数用于测试-c 参数指定的配置文件是否正确。

由于我要将所有的nginx程序,日志,配置都放在/home/dist/carrier/nginx目录下,因此对应的修改启动脚本/etc/init.d/nginx

由于没有找到办法指定error log的位置. 因此现在绕过的方法是 编译nginx的时候使用--prefix=/home/dist/carrier/nginx参数。

这里用到了之前没有用的DAEMON_OPTS变量,传递-c参数。注意,必须用双引号。

  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides: nginx
  4. # Required-Start: $local_fs $remote_fs $network $syslog
  5. # Required-Stop: $local_fs $remote_fs $network $syslog
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: starts the nginx web server
  9. # Description: starts nginx using start-stop-daemon
  10. ### END INIT INFO
  11. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  12. CARRIER_HOME=/home/dist/carrier
  13. DAEMON=$CARRIER_HOME/nginx/bin/nginx
  14. PID_FILE=$CARRIER_HOME/nginx/nginx.pid
  15. CONFIG_FILE=$CARRIER_HOME/nginx/conf/nginx.conf
  16. DAEMON_OPTS="-c $CONFIG_FILE"
  17. NAME=nginx
  18. DESC=nginx
  19. # Include nginx defaults if available
  20. if [ -f /etc/default/nginx ]; then
  21. . /etc/default/nginx
  22. fi
  23. test -x $DAEMON || exit 0
  24. set -e
  25. . /lib/lsb/init-functions
  26. test_nginx_config() {
  27. if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1; then
  28. return 0
  29. else
  30. $DAEMON -t $DAEMON_OPTS
  31. return $?
  32. fi
  33. }
  34. case "$1" in
  35. start)
  36. echo -n "Starting $DESC: "
  37. test_nginx_config
  38. # Check if the ULIMIT is set in /etc/default/nginx
  39. if [ -n "$ULIMIT" ]; then
  40. # Set the ulimits
  41. ulimit $ULIMIT
  42. fi
  43. start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS || true
  44. echo "$NAME."
  45. ;;
  46. stop)
  47. echo -n "Stopping $DESC: "
  48. start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $DAEMON || true
  49. echo "$NAME."
  50. ;;
  51. restart|force-reload)
  52. echo -n "Restarting $DESC: "
  53. start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $DAEMON || true
  54. sleep 1
  55. test_nginx_config
  56. # Check if the ULIMIT is set in /etc/default/nginx
  57. if [ -n "$ULIMIT" ]; then
  58. # Set the ulimits
  59. ulimit $ULIMIT
  60. fi
  61. start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS || true
  62. echo "$NAME."
  63. ;;
  64. reload)
  65. echo -n "Reloading $DESC configuration: "
  66. test_nginx_config
  67. start-stop-daemon --stop --signal HUP --quiet --pidfile $PID_FILE --exec $DAEMON || true
  68. echo "$NAME."
  69. ;;
  70. configtest|testconfig)
  71. echo -n "Testing $DESC configuration: "
  72. if test_nginx_config; then
  73. echo "$NAME."
  74. else
  75. exit $?
  76. fi
  77. ;;
  78. status)
  79. status_of_proc -p $PID_FILE "$DAEMON" nginx && exit 0 || exit $?
  80. ;;
  81. *)
  82. echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2
  83. exit 1
  84. ;;
  85. esac
  86. exit 0
systemctl实战指南:精准管理systemd服务单元与排错 systemd是现代Linux系统的初始化系统和系统管理器,其核心抽象是unit(单元),涵盖.service、.socket、.timer等多种类型,每种对应不同的系统自动化能力。它通过声明式配置实现服务依赖、启动条件、资源限制与生命周期控制,相比传统chkconfig具有更强的可审计性与可靠性。systemctl作为用户操作入口,提供状态查询、生命周期控制和配置管理三层逻辑,支撑服务高可用、健康检查、优雅关闭等生产级需求。本文聚焦systemctl实际应用中的关键参数(如WorkingDirectory 阅读详情

相关推荐

Linux 时间一致性环境NTP/Chrony服务器部署配置

背景 生产环境中,一个业务系统往往涉及几十台甚至上百台主机或云主机构成,有些管理系统对整个环境时间一致性由强要求,即使没有,保证环境中时间的一致性,有利于业务交互时时间匹配,保证事务的一致性,甚至环境中的监控系统,也需要监测时间一致性,保证数据上报正常。 ntp架构 下图来源网络,在前端管理节点上部署ntp服务器,且采取主备模式,局域网的ntp服务器先于外网ntp同步完成,局域网内再同本地ntp服务器同步时间。实际环境中,可借助类似架构,两个管理节点可以用HAproxy+keepalive做Heartbea

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 6532

用start-stop-daemon启动Nginx

用start-stop-daemon启动Nginx在前面学习Ubuntu apt-get install nginx 创建的nginx启动脚本中,看到start-stop-daemon的用法。迅速查了一下手册(用man start-stop-daemon)。这个程序用来启动和关闭系统级别的进程。下面我用该命令启动我自己编译的nginx程序:start-stop-daemon --start --qu

liwf616的专栏 2880

Linux入门实战:从虚拟机搭建到核心命令掌握

这类标题看起来像是打包了“一周学会 Linux”的课程或教程合集,但真正想学 Linux 的人,最怕的不是内容少,而是内容太杂、太散,不知道从哪里开始,也不知道学到什么程度才算“会了”。 我建议先别急着看“大全”或“全流程”,而是先搞清楚 Linux 学习最核心的三件事: 第一,你得有一个能动手的环境;第二,你得知道最常用、最能帮你解决问题的命令是哪些;第三,你得理解这些命令背后的文件系统、权限和进程管理逻辑 。把这三点跑通,比看一百个零散的知识点管用。 下面我会按一个更务实的顺序来拆解,从“如何快速获得一

weixin_33671935的博客 359

linux中守护进程启停工具start-stop-daemon

1.功能作用 启动和停止系统守护程序  2.位置 /sbin/start-stop-daemon  3.主要参数 Commands: -S|--start -- <argument> ... 开启一个系统守护程序,并传递参数给它 -K|--stop 停止一个程序 -T|--status 得到程序的状态 -H|--help 显示帮助信息 -V|--version 打印版本信息 Match...

菜鸟起步 1万+

《中国图书馆图书分类法》(第五版)详表(中图分类号查询表)

中文法分类

记录我目之所及的世界 4万+

从零开始构建AURIX TC397开发环境:硬件选型与IDE配置全攻略

本文详细介绍了如何从零开始构建AURIX TC397开发环境,涵盖硬件选型、IDE配置及外设驱动开发等关键步骤。针对TriCore架构的高性能特性,提供了开发板选型建议、AURIX Development Studio(ADS)安装配置指南,以及GPIO和CAN FD驱动的实战代码示例,帮助开发者快速上手TC397系列微控制器的开发工作。

7up55的博客 204

Restart on Crash – 监视并重启崩溃的程序

本文内容: 1. 什么是Restart on Crash 2. Restart on Crash下载 3. 如何设置与操作 Restart on Crash是一款用来监视程序运行正常与否的工具,当程序由于各种原因造成崩溃、没有响应、或者自动关闭后,Restart on Crash 会帮你自动重启它。 下载地址:http://w-shadow.com/blog/2009/03/0...

weixin_30610755的博客 857

知识图谱-Neo4j-开始构建知识图谱-01

关系(Relationships):连接两个节点,具有方向(→ 或 ←)和类型(Type),可附加属性。 属性(Properties):键值对,存储节点或关系的详细信息(如 , )。 (2) Cypher 查询语言 直观语法:通过模式匹配直接描述图结构。 高效遍历:支持复杂关系路径查询(如最短路径、模式匹配)。 3. 核心优势 (1) 原生图存储 物理存储优化:数据以图结构直接存储,避免传统数据库的“表连接”开销。 高效遍历:通过指针直接访问相邻节点,时间复杂度接近 O(1)。 (2) 高性

寓教于乐。教己助人 1万+

《Docker技术入门与实战 第4版》阅读笔记 3 Docker 容器

《Docker技术入门与实战 第4版》阅读笔记 3 Docker 容器

道友 451

告别硬件!用Wokwi在线模拟ESP32点灯,5分钟搞定开发环境搭建

本文介绍如何使用Wokwi在线模拟器快速搭建ESP32开发环境,5分钟内完成点灯实验。无需硬件即可体验GPIO控制、PWM调光等核心功能,特别适合物联网开发初学者和快速原型验证。Wokwi的零成本、全功能模拟特性让嵌入式开发变得前所未有的简单高效。

weixin_42567497的博客 494

【Fluent】太阳辐射模型—Solar Ray Tracing

一、引言Fluent提供了一个太阳能负载模型,可用于计算进入计算域的太阳光线的辐射效应。该模型可以分为:太阳光线追踪和太阳辐照。其中太阳辐照需要使用DO或MC模型,直接向辐射模型提供外光束方向和强度参数。太阳光线追踪不限制辐射模型,可以独立于辐射方程使用,甚至可以在辐射模型off的情况下使用。本文主要介绍太阳光线追踪模型。该模型非常适用于以下领域汽车气候控制 (ACC) 应用建筑物中的人体热舒适建模应用该模型使用着色算法进行太阳光线追踪。光线会透过半透明的面加载在照射面上。

a5567899的博客 7588

常用Linux命令

常用Linux指令

EmotionComputer 300

【Unity 反向运动学插件】Final IK 一套完整的IK解决方案

Final IK是Unity中一套完整的反向运动学解决方案,提供多种IK算法(CCD、FABRIK等)和功能模块,包括全身IK、VR驱动、武器瞄准、视线跟随等。其核心是通过数学方法计算关节旋转,使末端骨骼精确到达目标位置。系统支持多约束求解、旋转限制、动画烘焙及交互系统,采用模块化设计,兼顾性能与扩展性,适用于动作游戏、VR等需要高质量角色控制的场景,是Unity生态中最成熟的IK工具链之一。

2403_88403568的博客 1002

吃透 Linux 监控 + systemd:stress 压测、自定义服务全实操手册

本文介绍了Linux系统负载的概念与监控方法。系统负载包含CPU和IO活动请求数,通过指数移动平均算法计算1、5、15分钟负载值。文章详细讲解了stress工具的使用,包括:1)安装方法;2)CPU压力测试,通过-c参数模拟多核负载;3)内存压力测试,使用-m和--vm-bytes指定内存大小;4)磁盘IO测试,结合-d和--hdd-bytes参数,配合sar和iotop工具监控磁盘读写性能。这些方法可有效测试系统在高负载下的表现,帮助进行性能调优和故障排查。

2301_81987367的博客 526

SPD-Conv+YOLOv8:空间深度转换卷积赋能小目标检测,从原理到实战的科研级优化指南

从理解SPD-Conv“空间到深度+逐步卷积”的核心设计,到亲手将其嵌入YOLOv8并验证在小目标场景的表现,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解“小目标特征保留”在检测任务中的核心价值。现在就开始行动,相信你会在小目标检测的“细节捕捉”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入SPD-Conv后,YOLOv8在小目标AP上提升5-8个百分点,mAP50-95提升3-5个百分点,而推理速度仅下降5%以内,充分体现了其“保细节+提精度”的优势。

m0_64661770的博客 161

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Linux 系统服务管理:systemctl 命令详解与技术大纲

摘要:本文全面讲解Linux系统中systemctl命令的使用,涵盖核心概念、基础操作、高级管理及实战案例。systemd作为现代Linux的初始化系统,通过.service单元文件管理服务生命周期。文章详细介绍了服务启停、自启配置、状态查询等基础命令,并深入解析单元文件结构、依赖管理、故障排查等高级技巧。通过Spring Boot应用、Nginx和MySQL的实战案例,演示如何创建自定义服务和管理常见应用。最佳实践部分强调安全配置和日志管理,为系统管理员提供完整的服务管理解决方案。

ywl470812087的博客 10万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux 服务管理:从 systemd 基础到自定义服务开发实战

CentOS 7 使用 Systemd 引导系统启动,速度最快,所有进程无论有无依赖关系则都是并行启动(很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动)。Systemd为了解决上文的问题而诞生。它的目标是,为系统的启动和管理提供一套完整的解决方案。用户空间,systemd,pid为1内核空间,kthreadd,pid为2服务:从业务角度来称呼,例如 web 服务,数据库服务。守护进程(daemon)

2601_96578044的博客 168

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

systemctl命令详解

systemctl是 Linux 系统中用于检查和控制系统状态的核心命令,是systemd系统和服务管理器的管理工具。systemd 是主流 Linux 发行版默认的主进程(PID 1),它已取代传统的 SysV init,采用并行启动方式,显著提升了系统启动效率。基本语法格式systemctl [选项...] 命令 [服务/单元名...]这是最优雅的停止方式。如果服务单元文件(.service)中定义了ExecStop=指令,systemd 会首先执行这个命令。

zhaominyong的专栏 375

轻轻松松——简单却详细的linux系统下的线程管理 教学,小白必看!!!

学习进程管理的最终目的,是让我们能透过系统的表象,理解其底层的调度逻辑,从而在面对进程异常、资源占用过高、服务故障等问题时,能够快速定位、精准处理,保障系统的高效与稳定。后续,你可以在此基础上,结合进程监控、日志分析、服务自动化部署等内容,进一步完善你的Linux运维知识体系,真正做到“知其然,更知其所以然”。

alldaycat的博客 342

【Linux】精通systemctl:从基础管理到高级运维实战指南

本文详细介绍了Linux系统中systemctl命令的全面使用指南,从基础服务管理到高级运维技巧。涵盖服务启动、状态检查、故障排查、依赖管理、资源限制及自定义服务创建等实战内容,帮助系统管理员提升Linux服务管理效率与运维能力。

weixin_33834628的博客 397

终极指南:如何将swayidle与systemd无缝集成实现睡眠自动化任务

swayidle是一款强大的Wayland idle管理守护进程,通过与systemd集成,能够在系统睡眠前后执行自动化任务,如锁定屏幕、备份数据等关键操作。本文将详细介绍如何配置这一组合,让你的Linux系统更智能、更安全。 ## 为什么选择swayidle与systemd集成? 在Wayland环境中,swayidle作为核心的idle管理工具,与systemd的结合带来三大优势: - *

gitblog_00702的博客 420

3大核心技巧:用inotify-tools解决Linux文件监控的常见痛点

您是否曾经遇到过这样的问题:作为Linux系统管理员,需要实时监控关键配置文件的变化,但传统的轮询方法既低效又占用大量资源?或者作为开发者,希望实现代码热重载,却苦于找不到轻量级的文件监控方案?这正是许多技术人员在日常工作中面临的真实挑战。 inotify-tools正是为解决这些问题而生的强大工具集。它基于Linux内核的inotify机制,提供了两个核心命令行工具:inotifywait用于

gitblog_00480的博客 671

Java多线程(超详细版!!)

本文详细介绍了Java多线程的基本概念、实现方式及其应用场景。首先,文章解释了线程、进程和多线程的区别,指出线程是CPU调度的基本单位,而进程是程序的一次执行过程,通常包含多个线程。接着,文章介绍了三种创建线程的方法:继承Thread类、实现Runnable接口和实现Callable接口,并分析了各自的优缺点。其中,实现Runnable接口具有更高的灵活性,避免了单继承的限制,并且将任务与线程分离,符合面向对象设计原则。此外,文章通过“买票案例”和“龟兔赛跑”两个示例,展示了多线程在实际应用中的并发问题及其

m0_73494933的博客 1049

【Linux】配置服务自启动

在 Linux 环境下,给 Redis 设置开机自启动 + 进程异常挂掉自动重启,避免服务挂掉后不方便手动重启带来的问题。redis-server 启动程序路径(如 /usr/local/redis/bin/redis-server)redis.conf 配置文件路径(如 /usr/local/redis/conf/redis.conf)输出 Created symlink …(2)粘贴以下配置(替换路径为你自己的 Redis 路径)(1)重载 systemd 配置(让系统识别新服务)

weixin_44823875的博客 339
上一篇: shell 之 test 命令
下一篇: modprobe
HeyITMan
博客等级 码龄14年 5粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值