centos 7 systemctl

Linux Systemctl是一个系统管理守护进程、工具和库的集合,用于取代System V、service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器。通过Systemctl –help可以看到该命令主要分为:查询或发送控制命令给systemd服务,管理单元服务的命令,服务文件的相关命令,任务、环境、快照相关命令,systemd服务的配置重载,系统开机关机相关的命令。

  1. 列出所有可用单元

  # systemctl list-unit-files

  2. 列出所有运行中单元

  # systemctl list-units

  3. 列出所有失败单元

  # systemctl –failed

  4. 检查某个单元(如 crond.service)是否启用

  # systemctl is-enabled crond.service

  5. 列出所有服务

  # systemctl list-unit-files –type=service

  6. Linux中如何启动、重启、停止、重载服务以及检查服务(如 httpd.service)状态

  # systemctl start httpd.service

  # systemctl restart httpd.service

  # systemctl stop httpd.service

  # systemctl reload httpd.service

  # systemctl status httpd.service

  注意:当我们使用systemctl的start,restart,stop和reload命令时,终端不会输出任何内容,只有status命令可以打印输出。

  7. 如何激活服务并在开机时启用或禁用服务(即系统启动时自动启动mysql.service服务)

  # systemctl is-active mysql.service

  # systemctl enable mysql.service

  # systemctl disable mysql.service

  8. 如何屏蔽(让它不能启动)或显示服务(如ntpdate.service)

  # systemctl mask ntpdate.service

  ln -s ‘/dev/null”/etc/systemd/system/ntpdate.service’

  # systemctl unmask ntpdate.service

  rm ‘/etc/systemd/system/ntpdate.service’

  9. 使用systemctl命令杀死服务

  # systemctl kill crond

  10. 列出所有系统挂载点

  # systemctl list-unit-files –type=mount

  11. 挂载、卸载、重新挂载、重载系统挂载点并检查系统中挂载点状态

  # systemctl start tmp.mount

  # systemctl stop tmp.mount

  # systemctl restart tmp.mount

  # systemctl reload tmp.mount

  # systemctl status tmp.mount

  12. 在启动时激活、启用或禁用挂载点(系统启动时自动挂载)

  # systemctl is-active tmp.mount

  # systemctl enable tmp.mount

  # systemctl disable tmp.mount

  13. 在Linux中屏蔽(让它不能启用)或可见挂载点

  # systemctl mask tmp.mount

  ln -s ‘/dev/null”/etc/systemd/system/tmp.mount’

  # systemctl unmask tmp.mount

  rm ‘/etc/systemd/system/tmp.mount’

  14. 列出所有可用系统套接口

  # systemctl list-unit-files –type=socket

  15. 检查某个服务的所有配置细节

  # systemctl show mysql

  16. 获取某个服务(httpd)的依赖性列表

  # systemctl list-dependencies httpd.service

  17. 启动救援模式

  # systemctl rescue

  18. 进入紧急模式

  # systemctl emergency

  19. 列出当前使用的运行等级

  # systemctl get-default

  20. 启动运行等级5,即图形模式

  # systemctl isolate runlevel5.target

  或

  # systemctl isolate graphical.target

  21. 启动运行等级3,即多用户模式(命令行)

  # systemctl isolate runlevel3.target

  或

  # systemctl isolate multiuser.target

  22. 设置多用户模式或图形模式为默认运行等级

  # systemctl set-default runlevel3.target

  # systemctl set-default runlevel5.target

  23. 重启、停止、挂起、休眠系统或使系统进入混合睡眠

  # systemctl reboot

  # systemctl halt

  # systemctl suspend

  # systemctl hibernate

  # systemctl hybrid-sleep

  对于不知运行等级为何物的人,说明如下。

  Runlevel 0 : 关闭系统

  Runlevel 1 : 救援,维护模式

  Runlevel 3 : 多用户,无图形系统

  Runlevel 4 : 多用户,无图形系统

  Runlevel 5 : 多用户,图形化系统

  Runlevel 6 : 关闭并重启机器

CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。

下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl。

前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序。

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行Node.js项目,具体内容如下:

[Unit]
Description=xiyoulibapi
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/node.js/pid
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置了

首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

我的脚本编写方法参照了nginx的编写方法,也可以根据其他功能类似的程序。

这样看来,虽然systemctl比较陌生,但是其实比init.d那种方式简单不少,而且使用简单,systemctl能简化的操作还有很多,现在也有不少的资料,看来RHEL/CentOS比其他的Linux发行版还是比较先进的,此次更新也终于舍弃了Linux 2.6内核,无论是速度还是稳定性都提升不少。

时间: 2024-10-26 01:16:32

centos 7 systemctl的相关文章

Centos 使用Systemctl报Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24) 在使用centos7.4 安装服务的

[[email protected] ~]# systemctl restart zabbix-agent Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24) Failed to restart zabbix-agent.se

【Linux笔记】CentOS 7 systemctl、firewalld

一.CentOS7 systemctl 在CentOS7中,进行chkconfig命令操作时会发现有类似“systemctl.....”的提示,systemctl可以简单实现service和chkconfig的结合,这样通过一个命令就可以实现两个命令的功能. systemctl命令的基本操作格式是: systemctl [OPTIONS...] {COMMAND}... 以nginx服务为例,实现停止.启动.重启的动作如下: systemctl stop nginx.service system

.netcore centos配置systemctl自动启动

systemd分两种服务系统和用户服务 对应存储位路径为系统(/user/lib/systemd/system/).用户(/etc/lib/systemd/user/) [Unit] Description=api services After=network.target [Service] Type=forking ExecStart=/Service/API/RunDotNetServices.sh ExecReload=/Service/API/RunDotNetServices.sh

LINUX CentOS 8 systemctl firewall 防火墙开启/关闭 命令

[[email protected] ~]#firewall-cmd --state not running [[email protected] hadoop]# systemctl is-enabled firewalld.service;echo $? (查看服务是否开机启动) enabled 0 [[email protected] hadoop]# systemctl disable firewalld.service (开机 不要 自动开) Removed /etc/systemd/

Centos系统半自动化安装

很多朋友也都使用光盘安装过操作Centos操作系统,光盘启动之后也就会给一个选择界面一步一步的选择好之后就开始正式安装了,如果是安装一台服务器的操作系统,这样也倒好说,如果等着我们安装的是成百上千的时候,还能这样一台的去手动选择第一个台的配置选项吗,很显然这样操作是很愚蠢的,所以我们能否让它按着一个标准划的模板自动化去配置后进行安装了.Centos系列的操作系统的光盘安装管理器anaconda已经给我们提供了这一功能,只是大家没有去做过多的研究罢了,那么今天就带大家来了解一下如何使用anacon

CentOS的进程管理二

在上一篇中已经写了一些进程管理的相关命令: pstree, ps,pgrep,pidof, top 下面继续: vmstat ---- 显示虚拟内存统计 格式: vmstat [options] [delay [count]] 显示结果摘要: procs-----------memory-------------swap-- -----io---- -system-- ------cpu----- r b   swpd   free  buff cache   si  so    bi   bo

Centos 6&7下服务启动方法及添加到开机启动

在linux系统中,安装完一个软件或应用后,有时候需要手动启动该应用,也需要收到将该应用添加到开机启动项中,让其可以能够在linux一开机后就加载该应用 启动应用的方法 CentOS 6 : service SERVICE start|stop|restart|reload|status CentOS 7 : systemctl start|stop|restart|reload|status SERVICE 添加到开机启动项的方法 CentOS 6 : chkconfig SERVICE on

三大家族轻松管理CentOS 7网络属性配置

一.简单介绍    在CentOS 7中对网络管理还是有不少变化的,例如管理服务的命令变为systemctl,许多命令可以更改后直接生效,还有许多独有的工具,本文以CentOS 6与CentOS 7对比进行讲解,下面现总体介绍一下网络属性配置工具. ifcfg家族 ifcofnig:配置IP,NETMASK route:路由 netstat:状态及统计数据查看 iproute家族 ip OBJECT: addr: 地址和掩码 link:接口 route:路由 ss:状态及统计数据查看 CentO

centos下haproxy日志的配置

   涉及到的配置文件如下    1)  /etc/haproxy/haproxy.conf  //这个是haproxy程序的主配置文件,具体路径可以随意指定,主要是下面这句话         log         localhost   local0    2)  /etc/rsyslog.conf           //这个配置文件不用动,默认会有下面的设置,会读取 /etc/rsyslog.d/*.conf目录                                 //下的配