PHPスクリプトまたはワーカーをSystemdサービスとして実行する方法

Krishnan

Krishnan

2023年9月24日に投稿、2023年9月28日に更新

Systemdは、PHPスクリプトをサービスとして実行するまたはワーカーを設定する最良の方法の一つです。私は同一サーバー上で複数のワーカーを設定するために使っており、問題なく動作します。ワーカーを実行するためにsupervisorをインストールする必要はありません。

この記事では、Linux上でサービスを設定する手順について段階的に説明しています。

ステップ1: サービスの名前を決めます。将来覚えやすいようにアプリケーションや使用ケースに関連付けた名前を選びます。

ステップ2: 選んだ名前でサービスファイルを作成します。

sudo touch /etc/systemd/system/worker-name-service.service

ステップ3: ファイルを編集し、サービス情報を追加してファイルを保存します。

sudo nano /etc/systemd/system/worker-name-service.service
[Unit]
Description=My App Notification Worker
After=network.target

[Service]
User=root
Group=www-data
Restart=always
WorkingDirectory=/var/www/html/path-to-worker
ExecStart=/usr/bin/php artisan queue:work

[Install]
WantedBy=multi-user.target

ステップ4: systemdデーモンを再読み込みして、新しいサービスが認識されるようにします。

sudo systemctl daemon-reload

ステップ5: 新しいサービスを有効にします。

sudo systemctl enable worker-name-service

ステップ6: 新しいサービスを開始します。

sudo systemctl start worker-name-service

ステップ7: サービスの状態を確認し、動作していることを確かめます。

sudo systemctl status worker-name-service

緑色のライトが表示されていれば、ワーカーやPHPスクリプトをsystemdサービスとして正常に設定できたことになります。

もともと私の個人ブログに投稿されました。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/iam_krishnan/running-a-php-script-or-worker-as-a-systemd-service-pf7