service
打开文件
`sudo vim /lib/systemd/system/【yourservice_name】.service
编辑文件
[Unit]
Description=Test Service
After=multi-user.target ## network.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/snail/autorun.py
[Install]
WantedBy=multi-user.target
更改权限
sudo chmod 644 /lib/systemd/system/autorun.service
``
启动
sudo systemctl daemon-reload sudo systemctl enable autorun.service###使服务开机自启动
查看服务
sudo systemctl status autorun.service
参数说明
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
开机启动
systemctl enable nginx.service
supervisor
1.安装
- 配置
- 运行 echo_supervisord_conf > /etc/supervisord.conf 生成配置文件supervisord.conf.
- 创建文件夹 /etc/supervisord.d
- 在文件夹 /etc/supervisord.d/ 下创建对应项目的配置文件:
[program:demo]
command=/root/demo/bin/demo -srcPath=/root/demo -runMode=production
directory=/root/demo
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
startsecs=1 ; number of secs prog must stay running (def. 1)
startretries=3 ; max # of serial start failures (default 3)
user=root ; setuid to this UNIX account to run the program
redirect_stderr=true ; redirect proc stderr to stdout (default false)
stdout_logfile=/root/demo/logs/demo.stdout.log
stdout_logfile_maxbytes=50MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false ; emit events on stdout writes (default false)
stderr_logfile=/root/demo/logs/demo.stderr.log
stderr_logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=10 ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false ; emit events on stderr writes (default false)
- 运行 supervisord -c /etc/supervisord.conf 启动
- 运行 ps aux | grep supervisord 查看 supervisord 是否正在运行
常用命令
supervisord: 初始启动Supervisord,启动、管理配置中设置的进程;
supervisorctl stop(start, restart) xxx,停止(启动,重启)某一个进程(xxx);
supervisorctl reread: 只载入最新的配置文件, 并不重启任何进程;
supervisorctl reload: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;
例子
[program:grafana-server]
command=grafana-server web
directory=/usr/local/daemon/grafana/
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/cloudmonitor/grafana.log
stdout_logfile=/var/log/cloudmonitor/grafana.log
user=****
网友评论