-查看所有已启动的服务
systemctl list-units --type=service
1.建立服务文件
vim /usr/lib/systemd/system/nginx.service
nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
mysql.service
[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
#ExecReload=/usr/local/mysql/support-files/mysql.server restart
#ExecStop=/usr/local/mysql/support-files/mysql.server stop
#PrivateTmp=true
[Install]
WantedBy=multi-user.target
php-fpm.service
[Unit]
Description=php
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target
redis.service
[Unit]
Description=Redis
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=kill -INT `cat /tmp/redis.pid`
User=www
Group=www
[Install]
WantedBy=multi-user.target
supervisord.service
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
---文件内容解释
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
2.以754的权限保存在目录
chmod -R 754 /usr/lib/systemd/system
服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,
需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
3.设置开机自启动
-任意目录下执行
systemctl enable nginx.service
4.其他命令
---启动nginx服务
systemctl start nginx.service
---设置开机自启动
systemctl enable nginx.service
---停止开机自启动
systemctl disable nginx.service
---查看服务当前状态
systemctl status nginx.service
---重新启动服务
systemctl restart nginx.service
===================
systemctl restart swoole-prod
systemctl stop swoole-prod
systemctl status swoole-prod
vim /usr/lib/systemd/system/swoole-prod.service
[Unit]
Description=Prod Socket Server
After=network.target
After=syslog.target
[Service]
User=www
Type=simple
LimitNOFILE=65535
ExecStart=/usr/local/webserver/php-56/bin/php /data/web/dcms.qianbitou.cn/yii websocket/start
ExecReload=/bin/kill -USR1 $MAINPID
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=swoole-prod
[Install]
WantedBy=multi-user.target graphical.target