Linux 服务管理命令 systemctl
Linux 使用文档
收录了这篇文章

一,简介

CentOS 7 中 systemctl 整合了chkconfig 与 service功能

systemctl is-enabled iptables.service
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务


注:*代表某个服务的名字,如http的服务名为httpd


二,举例

yum -y install httpd


启动服务(等同于service httpd start)

systemctl start httpd.service

停止服务(等同于service httpd stop)

systemctl stop httpd.service

重启服务(等同于service httpd restart)

systemctl restart httpd.service

查看服务是否运行(等同于service httpd status)

systemctl status httpd.service

开机自启动服务(等同于chkconfig httpd on)

systemctl enable httpd.service

开机时禁用服务(等同于chkconfig httpd on)

systemctl disable httpd.service

查看服务是否开机启动 (等同于chkconfig --list)

systemctl list-unit-files (查看开机启动项)
systemctl list-unit-files | grep 程序名称 (查看某些服务开机启动状态)
systemctl list-unit-files | grep enable (查看哪些为开机启动服务)


三,创建自己的服务

创建一个.service 扩展名的文件 node-spider.service

[Unit]
Description=node simple server

[Service]
ExecStart=/usr/bin/node /test/node-spider.js
Restart=always
User=nobody
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/tmp/node-systemd-demo

[Install]
WantedBy=multi-user.target

Unit区块的Description字段,是服务的简单描述。

Service区块的字段含义如下。

ExecStart:启动命令,ExecStart 后面分别是 node可执行文件的绝对路径、node-spider.js 是我自己写的可执行程序程序。

Restart:如何重启。always表示如果进程退出,总是重启

Environment:环境变量

WorkingDirectory:工作目录

Install区块的WantedBy字段指定,设为开机启动时,该服务所在的 Target 是multi-user.target。


现在将配置文件拷贝到 Systemd 之中。

sudo cp node-spider.service /etc/systemd/system

接着,就启动服务。

sudo systemctl start node-server


修改时间 2021-12-08

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
数据库中间表应该如何命名
JavaScript DOM 元素增删改
使用 MySQL 线程池对压力测试的影响
WP_REST_Response 返回结果类
ES6 Promise 和 async/await 教程
WP_Query 函数参数
WordPress 后台添加菜单
JavaScript 窗口/文档事件