Linuxデーモンプロセスのサンプルコード分析
Linux における常駐プロセスの役割は無視できませんが、そのプロセスの問題点も無視できず、プロセスの起動方法、プロセスの終了方法、プロセスハングアップ後のプロセスの再起動方法などを考慮する必要があります。合理的に設計されています。シェル制御の PHP 常駐プロセスの例を見てみましょう。
##コードをコピーします。コードは次のとおりです。##!/bin/sh
#ファイル名 test.sh#ファイルの場所は絶対的な位置にあり、変更されません。実行ディレクトリを使用します。
cd $(cd "$(dirname "$0")";pwd)
readonly path=$(pwd)/
file=$1;
runfile="${path }data/${file} .run"
diefile="${path}data/${file}.die"
readonly file="${path}${file}.php"
if [ ! -f "$ file" ]; then
echo "存在するファイルを選択してください"
elif [ ! -f "$runfile" ]; then
# ここで判断します。存在しない場合は、プロセスが存在しないことを意味します。 , 以下のプロセスを開始します
echo $$>${runfile}
while true
do
if [ ! -f $diefile ]; then
diefile ファイルが存在しない場合は、プログラムが実行を継続することを示します。存在しない場合は、else に入り、終了操作を実行します。 runfile と diefile をクリアして終了します。
if rm -rf $runfile && rm -rf $ diefile ; then
exit
fi
fi
else
# ここに存在します Runfile はプロセスの開始を試みるために使用されます
oldpid=`cat $runfile`
newpid= `ps aux | grep "process.sh $1" | grep -v grep | grep "$oldpid" | awk '{print $2}'`
if [[ $oldpid -eq $newpid ]]; then
#実行ファイル内のプロセス番号が実行中のターゲット プロセス番号と一致する場合は、すべて問題ありません^_^
echo "プロセスは現在実行中です"
exit
else
#プロセス番号の場合runfile 内の は実行中のターゲット プロセスと一致しません。プロセスに問題があることを意味します。runfile を直接削除し、実行中のプロセスを終了します
echo "エラー状況。実行プロセスを強制終了し、実行ファイルを削除します"
ps aux | grep "process.sh $1" | grep -v 'grep' | awk '{print $2}' | grep -v $ $ | xargs --no-run-if-empty kill
If [ $? -eq 0]; Then
/data /error
これに制限はありません。ここで説明したいのは、居住者プロセスを実行するこの方法です。番号が強制終了プロセス (つまり、赤い else が実行される場所) と一致しません。「grep -v $$」を実行する必要があります。この機能は、現在実行中のプロセスをフィルタリングして除外することです。そうしないと、それらのプロセスと後続のプロセスが強制終了されます。
もう 1 つの注意点は自動再起動についてです。
自動再起動これは crontab に配置して、時々実行できます。特定の状況はケースバイケースで処理されます。 。
コードをコピーします コードは次のとおりです:
crontab -e
#現在のユーザー スケジュールを開いてモードを追加します
#スケジュールには 5 つのアスタリスク、f1、f2、 f3、f4、f5、
# ここで、f1 は分を表し、f2 は時を表し、f3 は日を表し、f4 は月を表し、f5 は曜日を表します。
#* は、毎分/時/日/月/日を表します今週の */n は、n 分/時間に 1 回実行することを意味します/....
*/2 * * * * /root/test.sh
#2 分に 1 回実行
以上で完全な常駐プロセス関数が完成しましたので、プロセスを終了したい場合は該当ディレクトリ内の ${diefile} をタッチするだけです。
以上がLinuxデーモンプロセスのサンプルコード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

VSCODEビルトインターミナルは、エディター内でコマンドとスクリプトを実行して開発プロセスを簡素化できるようにする開発ツールです。 VSCODE端子の使用方法:ショートカットキー(CTRL/CMD)で端子を開きます。コマンドを入力するか、スクリプトを実行します。 Hotkeys(Ctrl Lなどの端子をクリアするなど)を使用します。作業ディレクトリ(CDコマンドなど)を変更します。高度な機能には、デバッグモード、自動コードスニペット完了、およびインタラクティブコマンド履歴が含まれます。

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

VSコード端末コマンドの原因とソリューションは使用できません:必要なツールはインストールされていません(Windows:WSL; MACOS:XCODE LINEツール)パス構成が間違っています(パス環境変数に実行可能ファイルを追加)許可問題(管理者としてのコードの実行)ファイアウォールまたはプロキシ制限制限(チェック設定、無制限) (再インストールまたは更新)端子構成は互換性がありません(異なる端子タイプまたはコマンドを試してください)特定の環境変数が欠落しています(必要な環境変数を設定します)

VSコードワンステップ/次のステップショートカットキー使用法:ワンステップ(後方):Windows/Linux:Ctrl←; macOS:CMD←次のステップ(フォワード):Windows/Linux:Ctrl→; macOS:CMD→

Sublimeでコードを実行するには6つの方法があります。ホットキー、メニュー、ビルドシステム、コマンドライン、デフォルトビルドシステムの設定、カスタムビルドコマンド、プロジェクト/ファイルを右クリックして個々のファイル/プロジェクトを実行します。ビルドシステムの可用性は、崇高なテキストのインストールに依存します。
