Linux systemctl命令使用教程

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139388070


systemctl是什么

systemctl命令来自英文词组system control的缩写,是Linux系统中用于管理系统服务的工具。它提供了一系列命令,用于启动、停止、重启和查看服务状态等操作。

systemctl的基础语法

systemctl [options] command [name...]

  • options:可选参数,用于指定一些选项,比如 -h 显示帮助信息
  • cammand:必须参数,用于指定要执行的命令,比如 start 启动服务
  • name:可选参数,用于指定服务名称或单位名称

options常用选项

选项命令
-h显示帮助信息
-a显示所有的服务
-f跟踪服务的输出日志

systemctl的常见命令

开启进程服务

sudo systemctl start 服务名称

停止进程服务

sudo systemctl stop 服务名称

重启进程服务

sudo systemctl restart 服务名称

查看进程服务

sudo systemctl status 服务名称

设置开机自启动

sudo systemctl enable 服务名称

停止开机自启动

sudo systemctl disable 服务名称

创建自定义服务

1.存放文件目录

  • 系统配置文件目录 /etc/systemd/system/ 的优先级最高, 建议放在这
  • 其次为 /usr/lib/systemd/system/
  • /usr/lib/systemd/user/ 存放用户的配置, 但是一般不用!

2.创建service文件

这里以go.service为例,创建自定义服务,可以使用以下命令

sudo vim /etc/systemd/system/go.service

3.配置示例

[Unit]
Description=测试服务
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Type=simple
Restart=always
RestartSec=1s 
#工作目录,这里我以go服务为例
WorkingDirectory=/data/go
# 这里我以go服务为例
ExecStart=/bin/bash -c 'cd /data/go && /data/go/main'
# 最大文件打开数不限制
LimitNOFILE=infinity
# 子线程数量不限制
TasksMax=infinity

[Install]
WantedBy=multi-user.target

这里network-online.target1,systemd-networkd-wait-online.service2用于在系统重启后,确保网络连接就绪。

总结

首先,我们知道了,systemctl是Linux系统中用于管理系统服务的工具。其次,我们了解了它的基础语法,还有常见命令,包括开启、停止、重启、查看、设置开机启动、停止开机启动。最后我们通过自定义一个go服务,了解如何创建使用。


  1. network-online.target 是一个延伸的系统级别的目标,它代表着网络连接已经建立,并且可以提供Internet 访问。 它可以被用来作为其他服务的依赖,以确保这些服务在网络连接已经建立之后再启动。 因此,如果您想要在网络服务已经启动的情况下启动另一个服务,您可以将network.target 作为依赖。 ↩︎

  2. systemd-networkd-wait-online.service 是一个系统服务,它的作用是等待网络连接就绪后再启动其他的网络相关服务。 这个服务的timeout 默认是90 秒,如果在这个时间内无法等到网络就绪,就会超时报错 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值