Systemctlデーモンの簡単な例

2397 ワード

最近symfonyのconsoleコンポーネントを使用している場合、バックグラウンドのphpプロセスを実行し、バックグラウンドプロセスを常に存在させる必要があります.ここではSystemctlコマンドを使用しています.Systemctlは、システム管理デーモン、ツール、ライブラリの集合です.(1)私のcentosを例にとると、まずこのディレクトリに来ました:/usr/lib/systemd/systemm/(2)サービスファイル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)その後、次の2つのコマンドを実行するだけでいいです.
systemctl enable order_console.service
systemctl start order_console.service

(5)この時検証してみる:ps-ef|grep consoleを見ることができる
root     20509     1  0 9 08 ?       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は非常に大きな知識点で、非常に多くの知識を身につける必要があります.私はここで自分が普段出会ったいくつかの問題をノートの形式で記録して、みんなに役に立つことを望んでいます.