systemd 常用指令和配置实例

systemd

在想着把一个脚本文件作为开机启动时候,放到/etc/rc.d/rc.local下reboot后发现并没有启动,发现/etc/rc.d/rc.local注释里写的很明白,要么给rc.local增加chmod -x 的权限用于引导时执行,要么推荐使用systemd或udev规则。

Systemd是一个系统的第一个进程,用于集中管理和配置init。
而Sytemctl主要负责控制Systemd系统和服务管理。

常用命令

systemctl list-unit-files --type=service #列出所有服务
systemctl status nginx.service #检查nginx服务状态
systemctl start/restart/stop/reload/status nginx.service #启动、重启、停止、重载、检查nginx服务
systemctl enable/disable nginx.service #自动启动、禁止启动nginx服务
systemctl daemon-reload #更新.service配置到系统
systemctl kill nginx #杀死nginx服务
systemctl show nginx #查看nginx配置细节

系统命令

whereis systemd/systemctl #检查二进制文件和库文件的安装位置
ps -eaf | grep systemd # 检查systemd是否运行
systemctl --version #查看systemd版本
systemd-analyze blame #分析启动各个进程耗时
systemd-cgls #按等级列出控制组
systemd-cgtop #按CPU、内存、输入和输出列出控制组
systemctl rescue #启动系统救援模式
systemctl emergency #进入紧急模式
systemctl get-default #列出当前使用的运行等级
systemctl isolate runlevel5.target/graphical.target #启动运行等级5,即图形模式
systemctl isolate runlevel3.target/multiuser.target #启动运行等级3,即多用户模式(命令行)
systemctl set-default runlevel3.target #设置多用户模式为默认运行等级
systemctl reboot/halt/suspend/hibernate/hybrid-sleep  #重启、停止、挂起、休眠系统或使系统进入混合睡眠

单元命令

systemd-analyze #分析启动进程
systemd-analyze critical-chain #分析启动时关键链,Systemctl接受服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。
systemctl show -p CPUShares nginx.service #查看nginx服务CPU分配额,默认1024
systemctl set-property nginx.service CPUShares=2048 #将nginx服务CPU分配额设置2048
systemd-analyze critical-chain nginx.service #分析nginx服务关键链
systemctl list-dependencies nginx.service #获取nginx依赖性列表
systemctl list-units #列出运行中的单元
systemctl --failed #列出失败的单元
systemctl list-unit-files #列出可用单元状态
systemctl list-unit-files --type=service/mount/socket/device   #列出可用的系统套接字/挂载点
systemctl start/stop/restart/reload/status *.service/*.socket/*.mount/*.device #常用操作
systemctl mask/unmask *.socket/*.mount/*.service/*.device #注销/取消注销	
systemctl is-enabled *.socket/*.mount/*.service/*.device #检查是否启动
systemctl is-active *.socket/*.mount/*.service/*.device #检查是否活跃的
systemctl enable/disable *.socket/*.mount/*.service/*.device #自动启动、禁止启动

新增自己的systemd服务

# vi my-init.service

[Unit]
Description=my-init service
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/bash /etc/rc.d/init.d/init.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

# mv my-init.service /usr/lib/systemd/system/
# systemctl enable my-init.service
# reboot
# ps:init.sh脚本文件里面执行路径必须是绝对路径

新增一个shadowsocke启动服务

[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
Type=forking
PIDFile=/run/ssserver.pid
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json --pid-file /run/ssserver.pid  -d start
Restart=on-abort

[Install]
WantedBy=multi-user.target
运行等级个人理解
0为停机,机器关闭
1为单用户模式,救援维护模式,就像Win9x 下的安全模式类似
2为多用户模式,但是没有NFS 支持
3为完整的多用户模式,是标准的运行级
4一般不用,在一些特殊情况下可以用它来做一些事情,例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5就是 X11 ,进到 X Window 系统了
6为重启,运行 init 6 机器就会重启

参考

systemd简体中文wiki
systemctl 命令完全指南
编写systemd脚本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: systemd是Linux系统的一种系统和服务管理器,它的配置文件是用来配置系统服务的。下面是一些基本的配置方法: 1. 创建一个新的systemd服务配置文件。一般来说,这些文件都放在/etc/systemd/system目录中。文件名通常以.service为后缀。 2. 编辑配置文件。配置文件中包含一些键值对,用来描述服务的各种属性。下面是一些常见的键: - Description:用来描述服务的作用。 - ExecStart:用来指定服务启动时要运行的命令。 - ExecStop:用来指定服务停止时要运行的命令。 - Restart:用来指定服务在某些情况下应该重启。 3. 启用并启动服务。使用systemctl命令可以启用并启动服务。例如,要启用并启动一个名为myservice.service的服务,可以使用如下命令: ``` systemctl enable myservice.service systemctl start myservice.service ``` 4. 查看服务状态。使用systemctl命令可以查看服务的状态。例如,要查看名为myservice.service的服务的状态,可以使用如下命令: ``` systemctl status myservice.service ``` 希望这些信息能帮到您! ### 回答2: Systemd是一个用于启动、管理和控制Linux系统服务的系统和服务管理器。要配置systemd,您可以按照以下步骤操作: 1. 找到要配置的服务的unit文件:Systemd配置文件通常位于`/lib/systemd/system/`或`/etc/systemd/system/`目录中。您可以通过其中一个目录来查找特定服务的unit文件。 2. 打开unit文件进行编辑:使用文本编辑器打开找到的unit文件。这些文件的扩展名为`.service`,例如`nginx.service`。确保您以root用户身份打开文件,因为对文件进行更改可能需要root权限。 3. 编辑unit文件中的配置选项:在unit文件中,您可以找到各种配置选项,例如服务的描述、执行路径、依赖关系等。根据您的需求,修改这些选项以满足您的配置要求。 4. 保存并退出文件:在对unit文件进行编辑后,保存并关闭文件。 5. 重新加载systemd守护程序:使用以下命令重新加载systemd以应用更改: ``` sudo systemctl daemon-reload ``` 6. 启动或重新启动服务:一旦完成配置更改并重新加载systemd,您可以使用以下命令启动或重新启动服务: ``` sudo systemctl start <service_name> ``` 请注意,`<service_name>`是您要启动的服务的名称。 以上是配置systemd的基本步骤。您可以重复这些步骤来配置其他系统服务。确保在更改配置文件之前备份文件,并谨慎进行更改,以免影响系统的稳定性和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值