Systemd と Crontab を使用して Linux システムでタスクのシリアル実行を実装する方法
Linux システムでは、Systemd はシステムおよびサービス マネージャーであり、Crontab はスケジュールされたタスクを実行するためのツール。これら 2 つのツールを併用すると、タスクのシリアル実行を実現できます。この記事では、Systemd と Crontab を使用して Linux システムでタスクのシリアル実行を実装する方法を紹介し、具体的なコード例を示します。
Systemd は、Linux システムの重要なサービス マネージャーであり、システムのさまざまなサービスを開始、停止、再起動、管理できます。 Systemd ユニット ファイルを作成することで、タスクをサービスとして実行できます。 Crontab は、指定されたコマンドまたはスクリプトを特定の時点または間隔で実行することにより、タスクをスケジュールするためのツールです。これら 2 つのツールを併用すると、タスクの逐次実行、つまり 1 つのタスクが完了した後に次のタスクを実行できます。
以下は具体的な手順とコード例です。
ステップ 1: Systemd ユニット ファイルを作成する
[Unit] Description=Task1 [Service] ExecStart=/path/to/task1.sh
0 1 * * * /path/to/task2.sh
コマンドを使用して、タスク 1 が完了するまで待機できます。例: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>#!/bin/bash
systemctl start task1.service
systemctl status task1.service
# 等待任务1完成,可以根据任务1的日志或状态来判断
while [[ $(systemctl is-active task1.service) == "active" ]]; do
sleep 1
done
# 执行任务2的逻辑</pre><div class="contentsignin">ログイン後にコピー</div></div>
systemctl daemon-reload systemctl restart task1.service
systemctl restart cron.service
注:
Systemd ユニット ファイルとスクリプトを作成するときは、スクリプトへのパスが正しいことを確認し、正しいアクセス許可を設定する必要があります。以上がSystemd と Crontab を使用して Linux システムでタスクのシリアル実行を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。