Open gaoxt opened 7 years ago
在想着把一个脚本文件作为开机启动时候,放到/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 #自动启动、禁止启动
# 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脚本文件里面执行路径必须是绝对路径
[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
systemd简体中文wiki systemctl 命令完全指南 编写systemd脚本
systemd
在想着把一个脚本文件作为开机启动时候,放到/etc/rc.d/rc.local下reboot后发现并没有启动,发现/etc/rc.d/rc.local注释里写的很明白,要么给rc.local增加chmod -x 的权限用于引导时执行,要么推荐使用systemd或udev规则。
Systemd是一个系统的第一个进程,用于集中管理和配置init。 而Sytemctl主要负责控制Systemd系统和服务管理。
常用命令
系统命令
单元命令
新增自己的systemd服务
新增一个shadowsocke启动服务
参考
systemd简体中文wiki systemctl 命令完全指南 编写systemd脚本