ワーカーマンノート-phpはデーモンプロセスを作成します
data-id="1190000005056078" data-license="sa">
使用関数
<code>pcntl_fork();//创建子进程 posix_setsid();//设置当前进程为进程组长 posix_getpid();//获取进程id</code>
例
作業員中尉 一般プロセス
<code>/** * Run as deamon mode. * * @throws Exception */ protected static function daemonize() { if (!self::$daemonize) { return; } /** * 重设文件权限掩码 * 子进程从父进程继承了文件权限 * 若子进程不涉及到文件创建,可取消 */ umask(0); $pid = pcntl_fork();//创建子进程 if (-1 === $pid) { throw new Exception('fork fail'); } elseif ($pid > 0) { exit(0); //父进程退出 } /** * 更改子进程为进程组长 * 使子进程摆脱父进程控制 */ if (-1 === posix_setsid()) { throw new Exception("setsid fail"); } // Fork again avoid SVR4 system regain the control of terminal. $pid = pcntl_fork(); if (-1 === $pid) { throw new Exception("fork fail"); } elseif (0 !== $pid) { exit(0); } }</code>
その他の指示
基本概念
デーモンプロセス: Linuxのバックグラウンドサービスプロセス。これは存続期間の長いプロセスであり、通常は制御端末から独立しており、定期的に何らかのタスクを実行するか、発生する特定のイベントの処理を待機します。デーモンは多くの場合、システムの起動時に開始され、システムのシャットダウン時に終了します。
プロセス グループ: 1 つ以上のプロセスの集合です。プロセスグループはプロセスグループIDによって一意に識別されます。プロセス番号 (PID) に加えて、プロセス グループ ID もプロセスの必須属性です。各プロセスグループにはリーダープロセスが存在し、リーダープロセスのプロセス番号はプロセスグループIDと一致します。また、プロセスグループ ID はグループリーダープロセスの終了による影響を受けません。
セッション サイクル: セッションは 1 つ以上のプロセス グループの集合です。通常、セッションはユーザーがログインすると開始され、ユーザーがログアウトすると終了します。この期間中、ユーザーによって実行されるすべてのプロセスがこのセッションに属します。
プロセスを作成
子プロセスをフォークし、親プロセスが終了します
子プロセスをチームリーダープロセスに変更します
現在のディレクトリをルートディレクトリに変更します(chdir())
-
ファイル許可マスクのコードをリセット
ファイル記述子を閉じる
デーモンが終了し、SIGCHLDシグナルを処理する
信号処理
//TODO
参照
PHPはデーモン
上記では、Workerman Notes-php 作成デーモンのプロセスを、そのプロセスの側面も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Java では、複数のスレッドがコレクション オブジェクトを同時に操作すると、ConcurrentModificationException 例外が発生することがあります。この例外は通常、要素を変更または削除するときにコレクションを走査するときに発生します。これにより、コレクションの状態が不整合になり、異常なエラーがスローされます。 。この記事では、この例外の原因と解決策について詳しく説明します。 1. 例外の原因 通常はConcurrentModificationException例外

PHP の POSIX 拡張機能は、PHP が POSIX 準拠のオペレーティング システムと対話できるようにする関数と定数のセットです。 POSIX (PortableOperatingSystemInterface) は、ソフトウェア開発者がさまざまな UNIX または UNIX 類似のオペレーティング システム上で実行できるアプリケーションを作成できるように設計された一連のオペレーティング システム インターフェイス標準です。この記事では、PHP 用の POSIX 拡張機能のインストールと使用方法を紹介します。 1. PHP の POSIX 拡張機能を次の場所にインストールします。

pid 識別子に馴染みのない友人も多いかもしれませんが、タスク マネージャーで確認できます。ただし、一部のユーザーはタスク マネージャーを開いたときに PID 識別子を見つけることができません。実際、ユーザーがプロセス PID 識別子を表示したい場合は、それを表示するために「タスク マネージャー」の関連設定を行う必要があります。次のエディタでは、win7 システムを例として、プロセス PID 識別子の表示方法を説明します。 PID 識別子は、Windows オペレーティング システムによって実行中のプログラムに自動的に割り当てられる一意の連続番号です。プロセスが終了した後、PID はシステムによってリサイクルされ、新しく実行中のプログラムに割り当てられ続ける場合があります。ユーザーがプロセスを表示する必要がある場合、タスクマネージャーを使用して確認することになりますが、プロセスのPID識別子を確認するにはどうすればよいですか?以下にそれを共有させてください

2015 年 4 月 20 日、Redox OS は「安全性、自由、信頼性、正確性、実用主義に重点を置いた」新しいマイクロカーネル オペレーティング システムとして登場しました。 Rust とアセンブリ言語で書かれたこのプロジェクトは、次のようなコード部分からインスピレーションを受けました。

PHPCNTL でのフォーク失敗の一般的なエラーと解決策 プロセス管理に PHPCNTL 拡張機能を使用すると、フォーク失敗の問題が頻繁に発生します。 forkとは子プロセスを作成する方法ですが、場合によっては何らかのエラーによりfork操作が失敗することがあります。この記事では、いくつかの一般的なフォーク失敗エラーとそれに対応する解決策を紹介し、読者がこれらの問題をよりよく理解して対処できるように具体的なコード例を示します。 1. メモリ不足に関する考えられるエラー メッセージ: 可能

PHP の開発では、PHP がデータベースを操作する際のエラーによって発生する「PHPFatalerror:UncaughtException'PDOException'」などのエラーが発生することがあります。このエラーが時間内に処理されないと、プログラムが中断されたり、予期しないエラーが発生したりすることがあります。では、この問題をどうやって解決すればいいのでしょうか?一般的な解決策をいくつか示します。 1. データベースパラメータを確認する まず、データベースに接続するときに渡されるパラメータを確認する必要があります。

Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Java プログラミングでは、UnsupportedEncodingException が発生する場合があります。この例外は通常、間違ったエンコード変換またはサポートされていないエンコードによって発生します。この記事では、UnsupportedEncodingException例外の原因と対処法を紹介します。サポート対象外とは何ですか?

PHPCNTL 拡張フォーク関数の失敗原因の分析 PHP では、PCNTL 拡張機能はプロセス制御を処理するための一連の関数を提供します。フォーク関数はその中で一般的に使用される関数の 1 つです。 fork 関数を使用すると、特定のタスクを実行する子プロセスを作成できます。これは、同時ハンドラーを作成するときに非常に便利です。ただし、PCNTL の拡張フォーク機能を使用すると、フォークが失敗する場合があるため、この記事ではその原因を分析し、具体的なコードを示します。
