• systemctl教程(systemctl命令)(systemd)(service命令)


    systemctl与systemd

    systemctl和systemd是Linux系统中的两个重要组件,它们之间的关系是systemctl是systemd的一个命令行工具,用于管理systemd服务。

    systemd是一个系统和服务管理器,它是Linux系统中的一个init系统,负责启动和管理系统中的各种服务和进程。systemd的设计目标是提高系统启动速度、简化系统管理、提高系统安全性和可靠性。

    而systemctl是systemd的一个命令行工具,用于管理systemd服务。通过systemctl命令,可以启动、停止、重启、查看、设置和管理系统中的各种服务和进程。systemctl命令可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。

    因此,systemctl和systemd是密切相关的两个组件,systemctl是systemd的一个命令行工具,用于管理systemd服务。

    systemctl命令与service命令区别

    systemctl和service命令都是用于管理Linux系统中的服务,但它们之间有一些区别。

    1. systemctl是systemd的命令行工具,而service是传统的SysVinit系统的命令行工具。systemd是Linux系统中的一个init系统,而SysVinit是早期的init系统。

    2. systemctl可以管理systemd服务,包括启动、停止、重启、查看、设置和管理系统中的各种服务和进程。而service命令只能启动、停止、重启和查看服务。

    3. systemctl可以管理systemd的各种功能,包括系统初始化、进程管理、日志管理、网络管理等。而service命令只能管理服务的启动和停止。

    4. systemctl支持更多的操作,比如设置服务开机自启动、查看服务状态、查看服务依赖关系等。而service命令只能启动和停止服务。

    综上所述,systemctl比service命令更加强大和灵活,可以更好地管理Linux系统中的各种服务和进程。但是,在一些旧的Linux系统中,可能还是使用SysVinit系统,此时只能使用service命令来管理服务。

    systemctl命令教程(简略)

    参考文章:systemctl命令详解

    systemctl = service + chkconfig

    systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

    任务旧指令新指令
    使某服务自启chkconfig --level 3 httpdonsystemctl enable httpd.service
    使某服务不自动启动chkconfig --level 3 httpdoffsystemctl disable httpd.service
    检查服务状态service httpd statussystemctl status httpd.service 或者systemctl is-active httpd.service
    显示所有已启动服务chkconfig --listsystemctl list-units --type=service
    启动某服务service httpd startsystemctl start httpd.service
    停止某服务service httpd stopsystemctl stop httpd.service
    重启某服务service httpd restartsystemctl restart httpd.service

    示例

    1.启动nfs服务

    systemctl start nfs-server.service
    
    • 1

    2.设置开机自启动

    systemctl enable nfs-server.service
    
    • 1

    3.停止开机自启动

    systemctl disable nfs-server.service
    
    • 1

    4.查看服务当前状态

    systemctl status nfs-server.service
    
    • 1

    5.重新启动某服务

    systemctl restart nfs-server.service
    
    • 1

    6.查看所有已启动的服务

    systemctl list-units --type=service
    
    • 1

    示例:如何创建自定义服务

    以下示例如何用systemctl命令为程序myprocess创建自定义服务:

    1. 创建一个service文件,比如myprocess.service,并将其放在/etc/systemd/system/目录下。
    sudo vi /etc/systemd/system/myprocess.service
    
    • 1
    1. myprocess.service文件中添加以下内容:
    [Unit]
    Description=My Process
    After=network.target
    
    [Service]
    Type=simple
    Restart=always
    RestartSec=1
    User=root
    ExecStart=/path/to/myprocess
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    其中,Description是服务的描述,After指定服务启动的顺序,Type指定进程类型,RestartRestartSec指定进程死亡后自动重启的策略,User指定进程运行的用户,ExecStart指定进程的启动命令(如果带参数可在其后添加参数),WantedBy指定服务启动的目标。

    1. 启动服务并设置开机自启动:
    sudo systemctl start myprocess
    sudo systemctl enable myprocess
    
    • 1
    • 2

    现在,进程已经被systemd管理了,如果进程死掉了,systemd会自动拉起它。可以使用以下命令来管理服务:

    sudo systemctl status myprocess # 查看服务状态
    sudo systemctl stop myprocess # 停止服务
    sudo systemctl restart myprocess # 重启服务
    sudo systemctl disable myprocess # 禁止服务开机自启动
    
    • 1
    • 2
    • 3
    • 4

    Todo:上面.service文件各个参数的详细解释。

    如何移除服务的解释。

  • 相关阅读:
    利用随机数生成猜数字游戏【C语言】
    谷歌?亲斤手不推荐 选它就对了
    智能服装行业ERP软件帮助您提高工作效率和利润
    紫光展锐携中国联通完成RedCap芯片V517孵化测试
    Zip密码忘记了,如何破解密码?
    人工智能前沿——无人自动驾驶技术
    TensorFlow学习(5)数据结构 & 自定义组件(损失函数,激活函数,初始化,正则化和约束,层)
    LeetCode494:目标和
    shardingJdbc分库分表实战
    NAT地址转换,路由器作为出口设备,实现负载分担
  • 原文地址:https://blog.csdn.net/Dontla/article/details/130822522