🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### CentOS7自定义系统服务 CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。 CentOS7所编写的服务的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install] `[Unit]部分`主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别 `[Service]部分`是服务的关键,是服务的一些具体运行参数的设置. 1. Type=forking是后台运行的形式, 2. User=users是设置服务运行的用户, 3. Group=users是设置服务运行的用户组, 4. PIDFile为存放PID的文件路径, 5. ExecStart为服务的具体运行命令, 6. ExecReload为重启命令, 7. ExecStop为停止命令, 8. PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径会报错! [Install]部分是服务安装的相关设置,可设置为多用户的。 首先,使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。 接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。 实例:用于开机运行的tomcat服务项目: ~~~ #vim /usr/lib/systemd/system/tomcat.service [Unit] Description=java tomcat project After=tomcat.service [Service] Type=forking User=users Group=users PIDFile=/usr/local/tomcat/tomcat.pid ExecStart=/usr/local/tomcat/bin/startup.sh ExecReload= ExecStop=/usr/local/tomcat/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target ~~~ 添加可执行权限: ~~~ chmod 754 /usr/lib/systemd/system/tomcat.service ~~~ 设置为开机自启动: ~~~ #systemctl enable tomcat.service ~~~ 常用指令(以tomcat服务为例): 1. 启动某服务 systemctl start tomcat.service 2. 停止某服务 systemctl stop tomcat.service 3. 重启某服务 service tomcat restart systemctl restart tomcat.service 使某服务自动启动(如tomcat服务) systemctl enable tomcat.service 使某服务不自动启动 systemctl disable tomcat.service 检查服务状态 systemctl status tomcat.service (服务详细信息) systemctl is-active tomcat.service(仅显示是否Active) 显示所有已启动的服务 systemctl list-units --type=service