局域网服务器实现开机自启EasySwoole服务
需求:前段时间刚用写了教程安装centos系统,后面就内网利用EasySwoole实现Tcp服务端,为保持容错,避免断电造成服务死机而无法维护
在启动文件目录添加配置文件
vm /usr/lib/systemd/system/easyswoole.service
添加如下内容
随便利用cat查看一个.service的文件即可看到如下相似内容
代码语言:javascript复制[Unit]
Description=The EasySwoole Process Manager //这是描述
After=syslog.target network.target
[Service]
User=root //用户(建议使用root权限)
Group=root //组
Type=forking
ExecStart=/usr/bin/php /usr/share/nginx/html/doc/easyswoole start d //easyswoole项目的根目录
ExecReload=/usr/bin/php /usr/share/nginx/html/doc/easyswoole reload
ExecStop=/usr/bin/php /usr/share/nginx/html/doc/easyswoole stop
[Install]
WantedBy=multi-user.target
重装配置文件
systemctl daemon-reload
接下来先不要尝试启动程序,因为有个大坑
查看项目根目录下的easyswoole启动文件(当前版本3.3.7)
defined('EASYSWOOLE_ROOT') or define('EASYSWOOLE_ROOT', IN_PHAR ? Phar::running() : realpath(getcwd()));
将realpath(getcwd())替换为__DIR__
getcwd()是在哪个文件里被调用显示此文件目录,而__DIR__写在哪个文件就显示这个文件目录
启动easyswoole
systemctl start easyswoole
浏览器访问ok,依次尝试停止和重启,访问也ok
设置开启启动
systemctl enable easyswoole
依次进行测试,发现也ok
也可用命令来查看当前服务状态
systemctl status easyswoole