Systemd
是 Linux
系统工具,用来启动守护进程,已成为大多数发行版的标准配置。
而 systemctl
是 Systemd
的主命令,用于管理系统。
其实我们大部分服务都有使用 systemctl
管理,比如 MySQL、Nginx
等等。
常见配置如下:
[Unit] # 单元描述 Description=GF APP # 在什么服务启动之后再执行本程序 After=mysql.service [Service] Type=simple # 程序执行的目录 WorkingDirectory=/data/server/gfapp/ # 启动的脚本命令 ExecStart=/data/server/gfapp/gfapp # 重启条件 Restart=always # 几秒后重启 RestartSec=5 [Install] WantedBy=multi-user.target
使用方法:
创建应用配置文件
/etc/systemd/system/gfapp.service
, 内容如上;使用
systemctl daemon-reload
重新加载服务;执行
systemctl start gfapp
来启动服务;最后执行
systemctl status gfapp
来查看服务运行的状态信息;执行
systemctl enable gfapp
将服务添加到开机启动项;注意:执行的
gfapp
是使用文件名作为服务名;常见的命令有:
start(启动), stop(停止), restart(重启), status(查看运行状态), enable(添加到开机启动项), disable(将程序从开机启动中移除)
laravel 队列使用示例
所有文件都要使用绝对路径,
否则会找不到执行文件。
启动不成功
[Unit] Description=mydemo_queue_read After=network.target [Service] Type=simple WorkingDirectory=/data/www/news_notices ExecStart=/usr/bin/php /data/www/mydemo/artisan queue:work --queue="{queue_read}" PrivateTmp=true Restart=always RestartSec=5 [Install] WantedBy=multi-user.target