Linux systemctl命令用法及使用说明

 更新时间:2026年03月14日 15:02:51   作者:Donkor-  
systemctl是Linux中用于管理系统服务的工具,提供了启动、停止、重启和查看服务状态等功能,通过systemctl命令,用户可以方便地管理各种服务

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服务,了解如何创建使用。

  • network-online.target 是一个延伸的系统级别的目标,它代表着网络连接已经建立,并且可以提供Internet 访问。 它可以被用来作为其他服务的依赖,以确保这些服务在网络连接已经建立之后再启动。 因此,如果您想要在网络服务已经启动的情况下启动另一个服务,您可以将network.target 作为依赖。 ↩︎
  • systemd-networkd-wait-online.service 是一个系统服务,它的作用是等待网络连接就绪后再启动其他的网络相关服务。 这个服务的timeout 默认是90 秒,如果在这个时间内无法等到网络就绪,就会超时报错 ↩︎

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • CentOS7.4开机出现welcome to emergency mode的解决方法

    CentOS7.4开机出现welcome to emergency mode的解决方法

    CentOS7.4开机出现welcome to emergency mode,报这个错误多数情况下是因为/etc/fstab文件的错误。注意一下是不是加载了外部硬盘、存储器或者是网络共享空间,在重启时没有加载上导致的
    2018-09-09
  • 从Linux源码看Socket(TCP)Client端的Connect的示例详解

    从Linux源码看Socket(TCP)Client端的Connect的示例详解

    这篇文章主要介绍了从Linux源码看Socket(TCP)Client端的Connect,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 解决Ubuntu19 安装Theano问题

    解决Ubuntu19 安装Theano问题

    这篇文章主要介绍了解决Ubuntu19 安装Theano出现"No module named ‘theano.compat.six’"问题,需要的朋友可以参考下
    2019-12-12
  • linux查看服务器开放的端口和启用的端口多种方式

    linux查看服务器开放的端口和启用的端口多种方式

    Nmap可以扫描网络中的处于活动状态的主机、开放端口、操作系统版本和服务检测以及执行隐匿方式的信息扫描,这篇文章主要介绍了linux查看服务器开放的端口和启用的端口五种方式,需要的朋友可以参考下
    2022-08-08
  • Linux6.7卸载系统自带的mysql-libs* crontab命令不能用了原因分析

    Linux6.7卸载系统自带的mysql-libs* crontab命令不能用了原因分析

    这篇文章主要介绍了Linux6.7卸载系统自带的mysql-libs* crontab命令不能用了原因分析及解决方法,非常不错,需要的朋友参考下吧
    2016-12-12
  • Linux中date命令转换日期提示date: illegal time format问题解决

    Linux中date命令转换日期提示date: illegal time format问题解决

    date命令是显示或设置系统时间与日期,最近在使用中发现了一个问题,所以下面这篇文章主要给大家介绍了关于Linux中date命令转换日期提示date: illegal time format错误的解决方法,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-12-12
  • SSH远程登录和端口转发详解

    SSH远程登录和端口转发详解

    这篇文章主要介绍了关于SSH远程登录和端口转发的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 详解Supervisor安装与配置(Linux/Unix进程管理工具)

    详解Supervisor安装与配置(Linux/Unix进程管理工具)

    这篇文章主要介绍了详解Supervisor安装与配置(Linux/Unix进程管理工具),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 使用top命令分析linux系统性能的详解

    使用top命令分析linux系统性能的详解

    今天小编就为大家分享一篇关于使用top命令分析linux系统性能的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Linux进程优先级解读

    Linux进程优先级解读

    本文介绍Linux进程优先级(数字越小越高)与权限的区别,详解nice/renice命令调整优先级,涵盖竞争性、并发等概念,以优化系统资源分配与性能
    2025-08-08

最新评论