systemd systemctl系统服务管理
来源:原创
时间:2019-01-30
作者:脚本小站
分类:Linux
系统服务存放目录:开机不登录就运行的服务
/usr/lib/systemd/system
用户目录存放目录:
/usr/lib/systemd/user
service 文件的书写方法
[Unit]:
主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别。
[Unit] Description=java tomcat project After=tomcat.service
[Service]:
是服务的关键,是服务的一些具体运行参数的设置,启动、重启、停止命令全部要求使用绝对路径。
[Service] Type=forking #是后台运行的形式 User=users #是设置服务运行的用户 Group=users #是设置服务运行的用户组 PIDFile=/usr/local/tomcat/tomcat.pid #为存放PID的文件路径 ExecStart=/usr/local/tomcat/bin/startup.sh #为服务的启动命令 ExecReload= #为重启命令 ExecStop=/usr/local/tomcat/bin/shutdown.sh #为停止命令 PrivateTmp=true #表示给服务分配独立的临时空间
[Install]:
服务安装的相关设置,可设置为多用户的
[Install] WantedBy=multi-user.target
添加可执行权限:
chmod 754 /usr/lib/systemd/system/tomcat.service
日志位置:如果启动失败看此日志
tail -f /var/log/messages
systemctl 常用管理命令
设置为开机自启动:
systemctl enable tomcat.service
开机启动并立即启动:
systemctl enable --now tomcat.service
启动某服务
systemctl start tomcat.service
停止某服务
systemctl stop tomcat.service
重启某服务
systemctl restart tomcat.service
使某服务自动启动
systemctl enable tomcat.service systemctl is-enabled tomcat.service
使某服务不自动启动
systemctl disable tomcat.service
检查服务状态
systemctl status tomcat.service (服务详细信息) systemctl is-active tomcat.service(仅显示是否Active)
显示所有已启动的服务
systemctl list-units --type=service
禁止启动服务:
systemctl mask tomcat.service systemctl unmask tomcat.service
查看服务依赖关系:
systemctl list-dependencies docker.service
target
查看所有target:
]# systemctl list-unit-files --type target --all UNIT FILE STATE basic.target static bluetooth.target static cryptsetup-pre.target static cryptsetup.target static ctrl-alt-del.target disabled default.target enabled ...
查看target的相互依赖:
]# systemctl list-dependencies graphical.target graphical.target ● ├─display-manager.service ● ├─network.service ● ├─systemd-update-utmp-runlevel.service ● ├─vmware-tools.service ● └─multi-user.target ● ├─auditd.service ● ├─chronyd.service ● ├─crond.service ● ├─dbus.service ● ├─docker.service ...
切换模式:
]# runlevel #原命令 N 3 ]# systemctl isolate rescue.target
模式列表:
lrwxrwxrwx 1 root root 15 6月 2 2020 runlevel0.target -> poweroff.target lrwxrwxrwx 1 root root 13 6月 2 2020 runlevel1.target -> rescue.target drwxr-xr-x. 2 root root 4096 6月 2 2020 runlevel1.target.wants lrwxrwxrwx 1 root root 17 6月 2 2020 runlevel2.target -> multi-user.target drwxr-xr-x. 2 root root 4096 6月 2 2020 runlevel2.target.wants lrwxrwxrwx 1 root root 17 6月 2 2020 runlevel3.target -> multi-user.target drwxr-xr-x. 2 root root 4096 6月 2 2020 runlevel3.target.wants lrwxrwxrwx 1 root root 17 6月 2 2020 runlevel4.target -> multi-user.target drwxr-xr-x. 2 root root 4096 6月 2 2020 runlevel4.target.wants lrwxrwxrwx 1 root root 16 6月 2 2020 runlevel5.target -> graphical.target drwxr-xr-x. 2 root root 4096 6月 2 2020 runlevel5.target.wants lrwxrwxrwx 1 root root 13 6月 2 2020 runlevel6.target -> reboot.target
查看开机默认模式:
systemctl get-default
设置开机默认模式:
systemctl set-default TARGET.target