当前位置: 首页 > news >正文

linux:制作systemctl系统服务

用yum安装的软件(比如nginx)可以直接使用systemctl来管理 ,但是如果是源码安装的,无法使用systemctl来管理。

systemctl管理的原理:

1、我们在/usr/lib/systemcd/system下有各种.service文件

也就是说,要想被systemctl管理,就要在/usr/lib/systemd/system目录下,该软件就必须要在这个目录下创建这样一个.service文件。

2、我们以niginx为例,系统自带的nginx软件,在/usr/lib/systemd/system目录下有nginx.service文件

我们cat nginx.service看看里面的内容(cat sshd.service里面的内容,也大体一致):

[Unit]
Description= mynginx service(服务描述)
After=network-online.target(我这个服务在network-online启动之后启动) remote-fs.target nss-lookup.target(可加可不加)
Wants=network-online.target(可以不要)[Service]
Type=forking(默认,用forking来启动我的进程)
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t(运行start命令)
ExecStart=/usr/sbin/nginx (运行start命令)
ExecReload=/usr/sbin/nginx -s reload (运行reload命令)
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true[Install]
WantedBy=multi-user.target(在哪个运行级别)

3、我们以nginx为例,创建mynginx.service文件

cd /usr/lib/systemd/system

vim mynginx.service

[Unit]
Description= mynginx service(服务描述)
After=network-online.target(我这个服务在network-online启动之后启动)[Service]
Type=forking(默认,用forking来启动我的进程)
ExecStart=/usr/local/nginx/sbin/nginx (运行start命令)
ExecStop=/usr/local/nginx/sbin/nginx -s stop (运行stop命令)
ExecRestart=/usr/local/nginx/sbin/nginx -s restart(运行restart命令)
ExecReload=/usr/local/nginx/sbin/nginx -s reload (运行reload命令)
[Install]
WantedBy=multi-user.target(在哪个运行级别)

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何在wxPython GUI中使用BoxSizers实现整齐布局
  • 如何把STM32的调试口设置为普通的IO口?
  • PHP同城派送系统小程序源码
  • 富格林:深究安全出金做单经验
  • 电路中电阻,电容和电感作用总结
  • 大模型算法面试题(二十)
  • Scala基础入门:从零开始学习Scala编程
  • BVH、FBX 文件学习
  • 黑马微服务—Docker
  • 外企面企必备:IT技术面试英文高频面试题
  • 【C语言】qsort函数的介绍和使用
  • 《kubernetes权威指南第五版》读书笔记
  • RISC-V竞赛|第二届 RISC-V 软件移植及优化锦标赛报名正式开始!
  • 【OpenCV C++20 学习笔记】提取图片中的水平和垂直对象
  • K8s部署篇之手动部署二进制高可用集群架构
  • 【Leetcode】101. 对称二叉树
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • bearychat的java client
  • canvas 绘制双线技巧
  • exports和module.exports
  • interface和setter,getter
  • Js基础知识(四) - js运行原理与机制
  • Mybatis初体验
  • Node 版本管理
  • React+TypeScript入门
  • Vue2.0 实现互斥
  • windows下mongoDB的环境配置
  • 从重复到重用
  • 构造函数(constructor)与原型链(prototype)关系
  • 诡异!React stopPropagation失灵
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 警报:线上事故之CountDownLatch的威力
  • 前端之React实战:创建跨平台的项目架构
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 自制字幕遮挡器
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ionic异常记录
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (4)事件处理——(7)简单事件(Simple events)
  • (SERIES12)DM性能优化
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)uboot源码分析
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转)为C# Windows服务添加安装程序
  • *算法训练(leetcode)第四十天 | 647. 回文子串、516. 最长回文子序列
  • ./和../以及/和~之间的区别