systemctl 启动级别对应
systemctl 命令使用方法
基础使用
restart:重启服务,可启动服务 reload:服务重新加载配置文件 status:查看服务状态 start:启动服务 stop:停止服务 enable:开启自启 disable:关闭自启
进阶使
systemctl命令专门用来管理服务(守护进程) systemctl [list-units] #列出所有服务的运行状态 systemctl list-unit-files #列出所有服务的开机自启状态 systemctl daemon-reload #重新加载systemd服务 systemctl list-dependencies #查看服务的依赖关系 systemctl --failed #查看启动失败的服务 systemctl --type=service #查看常用服务的运行状态(不包含系统服务) systemctl get-default #查看默认启动模式[target] systemctl set-default graphical.target #开机默认启动图形界面 systemctl set-default multi-user.target #开机默认启动文本界面(控制台) systemctl list-dependencies multi-user.target #查看指定target包含的所有服务(unit) 服务状态说明: loaded #服务初始化完成,已正常加载配置文件 not-found #服务配置文件没有找到 falied #服务启动失败,配置文件错误 actvie(running) #服务正在运行一个或多个进程 actvie(exited) #仅执行一次就正常结束的服务,目前并没有任何进程在系统中执行 active(waitting) #正在执行当中,不过还需要等待其他的事件才能继续处理 inactive #服务关闭 enabled #服务启用自启 disabled #服务禁用自启 static #服务开机启动项不可被管理 masked #服务禁止建立启动链接 注:static指服务对应的service文件中没有定义[Install]区域,因此无法配置为开机启动服务,只能作为其他配置文件的依赖。 常用参数(参数后面接上服务名,服务名的.service后缀可省略): mask:冻结(禁用)服务启动脚本 unmask:启用服务启动脚本
启动脚本解释
开机自启就是在/etc/systemd/system/multi-user.target.wants/目录里建立对应服务的启动脚本的软链接。 自启就是删除/etc/systemd/system/multi-user.target.wants/目录中对应服务的软链接。 启动脚本保存在/usr/lib/systemd/system/目录下 启动脚本保存在/etc/systemd/system/目录下
添加自定义service启动脚本(作为服务、守护进程、Unit文件):
vim /etc/systemd/system/服务名.service [Unit] Description=服务描述 Documentation=文档地址 Wants=其他服务#network.target After=其他服务#syslog.target network.target [Service] Type=simple #服务类型 User=用户名 #服务执行的用户,默认为root,其他用户管理systemd需经过root同意 Environment=环境变量 #定义环境变量 ExecStartPre=启动服务之前执行的命令 ExecStopPost=停止服务之后执行的命令 ExecStart=启动服务执行的命令 ExecReload=重启服务执行的命令 ExecStop=停止服务执行的命令 #执行的命令必须是绝对路径(脚本或进程),不能执行shell的内部命令 [Install] WantedBy=multi-user.target #定义为开机启动项 最后还需要用户手动让systemd进程重新读取service启动脚本: systemctl daemon-reload 服务类型说明(Type): simple:默认值,执行ExecStart指定的命令,启动主进程 forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出 oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行 dbus:当前服务通过D-Bus启动 notify:当前服务启动完毕,会通知Systemd进程,然后再继续往下执行 idle:若有其他任务执行完毕,当前服务才会运行 systemd-analyze命令用于查看服务启动过程和耗时: systemd-analyze #查看系统开机时间 systemd-analyze blame #查看每个服务的启动耗时 systemd-analyze critical-chain #显示瀑布状的启动过程流,逆序 systemd-cgls #以树形结构列出正在运行的进程 服务的启动日志默认保存在/var/log/message文件 journalctl命令可以更加方便地查看和管理服务启动日志,配置文件为/etc/systemd/journald.conf journalctl #查看所有服务启动日志 选项: -n 行数 #查看日志末尾的指定行数,默认为10行 -u 服务名 #查看指定服务的日志 -f #实时刷新最新日志 -k #查看内核启动日志 –disk-usage #查看日志已占用的空间 –vacuum-size=1G #设置日志最大占用空间 –vacuum-time=1years #设置日志最大保存时间