Systemctl守护进程简单例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/y505772146/article/details/82560537

最近在使用symfony的console组件,需要执行一个后台的php进程,并且保持后台进程一直存在。这里我使用的是Systemctl命令。Systemctl是一个系统管理守护进程、工具和库的集合。后面我就直接把自己的配置贴出来,仅供参考:
(1)以我的centos为例:首先我来到这个目录:/usr/lib/systemd/system/
(2)新建一个service文件order_console.service,内容如下:

[Unit]
Description=PlaceOrder
After=network.target

[Service]
Restart=always
Type=simple
ExecStart=/var/www/BackApi/app/bin/console createOrderPipe

[Install]
WantedBy=multi-user.target

(3)其中,/var/www/BackApi/app/bin/console createOrderPipe就是我们需要执行的symfony console的命令。

(4)随后我只需要执行后面两条命令即可:

systemctl enable order_console.service
systemctl start order_console.service

(5)这个时候验证一下:可以查看ps -ef | grep console

root     20509     1  0 908 ?       00:00:12 php /var/www/BackApi/app/bin/console createOrderPipe

可以看到我们的命令。

这个时候尝试用命令关闭它:

kill -9 20509

再次执行ps -ef | grep console,可以看到命令又被启动了。
(6)在这里特意强调一下:如果我们遇到了一些奇怪的问题,导致我们的Systemctl 的start操作无法执行,我们可以试试如下的命令,然后再重复执行步骤(4):

systemctl stop order_console.service
systemctl disable order_console.service

看看能不能解决奇怪的问题(具体我就不贴出来了)。

linux这一块是非常大的一个知识点,有非常多的知识需要掌握,我在这里就是把自己平时遇到的一些问题以笔记的形式记录下来,希望对大家有所帮助。

猜你喜欢

转载自blog.csdn.net/y505772146/article/details/82560537