14人参与 • 2026-03-14 • Linux
systemctl命令来自英文词组system control的缩写,是linux系统中用于管理系统服务的工具。
它提供了一系列命令,用于启动、停止、重启和查看服务状态等操作。
systemctl [options] command [name...]
| 选项 | 命令 |
|---|---|
| -h | 显示帮助信息 |
| -a | 显示所有的服务 |
| -f | 跟踪服务的输出日志 |
sudo systemctl start 服务名称
sudo systemctl stop 服务名称
sudo systemctl restart 服务名称
sudo systemctl status 服务名称
sudo systemctl enable 服务名称
sudo systemctl disable 服务名称
/etc/systemd/system/ 的优先级最高, 建议放在这/usr/lib/systemd/system//usr/lib/systemd/user/ 存放用户的配置, 但是一般不用!这里以go.service为例,创建自定义服务,可以使用以下命令
sudo vim /etc/systemd/system/go.service
[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服务,了解如何创建使用。
network-online.target 是一个延伸的系统级别的目标,它代表着网络连接已经建立,并且可以提供internet 访问。 它可以被用来作为其他服务的依赖,以确保这些服务在网络连接已经建立之后再启动。 因此,如果您想要在网络服务已经启动的情况下启动另一个服务,您可以将network.target 作为依赖。 ↩︎systemd-networkd-wait-online.service 是一个系统服务,它的作用是等待网络连接就绪后再启动其他的网络相关服务。 这个服务的timeout 默认是90 秒,如果在这个时间内无法等到网络就绪,就会超时报错 ↩︎以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论