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

Linux systemd管理常用的几个小案例

systemd是目前Linux系统上主要的系统守护进程管理工具,配置文件要以.service结尾且放到 /usr/lib/systemd/system/目录下面

1、systemd管理ElasticSearch

[Unit]
Description=Elasticsearch Service[Service]
Type=forking
User=elastic
Group=elastic
ExecStart=/home/elastic/elasticsearch-7.17.6/bin/elasticsearch -d
ExecStop=/bin/kill -s QUIT $MAINPID
LimitNOFILE=65536
LimitNPROC=65536
Restart=on-failure
RestartSec=30s
KillMode=control-group
KillSignal=SIGTERM
TimeoutStopSec=30s[Install]
WantedBy=multi-user.target

常用参数解释:

  • LimitNOFILE:指定了一个服务可打开的最大文件描述符数。
  • LimitNPROC:指定了一个服务可以创建的最大进程数。
  • Restart:可以理解为守护进程on-failure表示在退出异常时,进行重启。
  • RestartSec:指定服务在重启之间的等待时间。

2、systemd管理 ZooKeeper

[Unit]
Description=zookeeper Service[Service]
Type=forking
WorkingDirectory=/home/zookeeper/apache-zookeeper-3.6.1-bin
User=zookeeper
Group=zookeeper
ExecStart=/home/zookeeper/apache-zookeeper-3.6.1-bin/bin/zkServer.sh start
ExecStop=/home/zookeeper/apache-zookeeper-3.6.1-bin/bin/zkServer.sh stop
Restart=on-failure
RestartSec=30s
KillMode=control-group
KillSignal=SIGTERM
TimeoutStopSec=30s[Install]
WantedBy=multi-user.target

3、system管理Nginx

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"[Install]
WantedBy=multi-user.target

常用参数解释:

  • After:在xxxx服务启动之后再启动Nginx
  • Wants:与"After"选项不同,"Wants"选项并不会影响Unit的启动顺序。它只是表达当前Unit对其他Units的依赖关系,但无论这些Units是否已经启动,当前Unit都可以继续启动。
  • PIDFile:指定Pid文件位置,停止Nginx时可以kill掉Pid进程

4、system管理Redis

[Unit]
Description=Redis Service
After=network.target
After=network-online.target
Wants=network-online.target[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
ExecStop=/usr/libexec/redis-shutdown
Type=simple
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755[Install]
WantedBy=multi-user.target

常用参数解释:

  • Type:simple,大概就是放到后台运行

5、systemd管理 Jar包

[Unit]
Description= jar Package manager [Service]
Type=forking
WorkingDirectory=/home/robot/robotv6.6.2/rbc_web
User=robot
Group=robot
ExecStart=/home/robot/robotv6.6.2/rbc_web/run.sh start
ExecStop=/home/robot/robotv6.6.2/rbc_web/run.sh stop
Restart=on-failure
RestartSec=30s
KillMode=control-group
KillSignal=SIGTERM
TimeoutStopSec=30s[Install]
WantedBy=multi-user.target

6、常用配置总结:

  • Description:服务备注信息
  • After:服务依赖,指明启动顺序
  • Type:上文中使用的是:forking 以fork方式从父进程创建子进程,创建后父进程会立即退出,子进程将成为主进程
  • PIDFile:PID文件路径
  • ExecStartPre:启动前要做的事情
  • ExecStart:启动服务
  • ExecReload:重载服务
  • ExecStop:停止服务
  • WorkingDirectory:工作目录
  • User:启动用户
  • Group启动组
  • PrivateTmp:True表示给服务分配独立的临时空间
  • WantedBy:服务安装的用户模式,上文中使用的是:multi-user.target ,就是指想要使用这个服务的目录是多用户。
  • LimitNOFILE:指定了一个服务可打开的最大文件描述符数。
  • LimitNPROC:指定了一个服务可以创建的最大进程数。
  • Restart:可以理解为守护进程on-failure表示在退出异常时,进行重启。
  • RestartSec:指定服务在重启之间的等待时间。
http://www.lryc.cn/news/117838.html

相关文章:

  • 38、IPv6过渡技术
  • HMMER-序列分析软件介绍
  • 【项目学习1】如何将java对象转化为XML字符串
  • nginx负载均衡
  • 【毕业项目】自主设计HTTP
  • 关于安卓jar包修改并且重新发布
  • Java课题笔记~ AspectJ 对 AOP 的实现(掌握)
  • npm 报错 cb() never called!
  • finally有什么作用以及常用场景
  • Python web实战之Django URL路由详解
  • 10-数据结构-队列(C语言)
  • 面试之快速学习C++11 - 右值 移动构造 std::move
  • vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色
  • 2023-08-09 LeetCode每日一题(整数的各位积和之差)
  • EditPlus连接Linux系统远程操作文件
  • JVM 垃圾回收
  • 编程中的宝藏:二分查找
  • 计算机网络 数据链路层
  • 如何维护自己的电脑
  • 智能优化算法——哈里鹰算法(Matlab实现)
  • 【深度学习】多粒度、多尺度、多源融合和多模态融合的区别
  • 利用SCCM进行横向移动
  • Nginx 负载均衡
  • Java课题笔记~ ServletConfig
  • oracle的异常处理
  • 【MySQL】MySQL数据类型
  • 【数据结构与算法】十大经典排序算法-希尔排序
  • docker 常用命令
  • uniapp微信小程序中打开腾讯地图获取用户位置信息
  • 嵌入式领域:人才供需失衡,发展潜力巨大