Prinzip und Implementierungscode des PHP-Skript-Daemon-Prozesses

小云云
Freigeben: 2023-03-19 21:46:02
Original
1683 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich das Prinzip und die Implementierungsmethode des PHP-Skript-Daemons vor. Er analysiert die Implementierungsideen, Prinzipien, Formate und spezifischen Implementierungsmethoden des PHP-Skript-Daemons ausführlicher . Ich hoffe, es kann allen helfen.

Ideen:

1 while-Schleife, wenn derzeit keine Daten zum Betrieb vorhanden sind, können Sie schlafen;
2 Skript alle festen Führen Sie das Skript während der Ausführung aus. Überprüfen Sie zunächst, ob es bereits ausgeführt wird. Wenn es nicht ausgeführt wird, überspringen Sie es.
3. Nohup-Hintergrundausführung
4. flock -xn lock

Beispiel:

Auszuführender Code: index. php


<?php
set_time_limit(0);
//死循环
while(1) {
  $message = &#39;1111111&#39; . "\n";
  error_log($message);
  sleep(5);
}
Nach dem Login kopieren


#/tmp/lock/test1.lock 为当前进程要锁定的文件,不同的进程配置不同的锁文件,该文件会自动创建
* * * * * flock -xn /tmp/lock/test1.lock -c &#39;nohup php index.php >> /php/test.log 2>&1 &&#39;
* * * * * flock -xn /tmp/mytest.lock -c &#39;php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log&#39;
Nach dem Login kopieren

schreibt das PHP-Skript. Um einen Speicherüberlauf des Daemon-Prozesses zu verhindern, wird empfohlen, die Speichernutzung regelmäßig zu überprüfen.
Fügen Sie den folgenden Code in das Geschäftsskript ein:


if(memory_get_usage()>100*1024*1024){
  exit(&#39;内存溢出&#39;);//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端
}
Nach dem Login kopieren

Hinweis:

Methode zum Anzeigen und Schließen von Nohup-Aufgaben:

Schließen:


//方法一:
ps -e | grep commend
kill -9 pid
//方法二:
fg %n  //n为jobs命令查看的进程号
Nach dem Login kopieren

Anzeigen:


//查看后台进程
jobs
Nach dem Login kopieren

Prinzip:

Verwenden Sie die Linux-Flock-Dateisperre, um die Aufgabensperre zu implementieren und Konflikte zu lösen

Format:


flock [-sxun][-w #] fd#
flock [-sxon][-w #] file [-c] command
Nach dem Login kopieren

Optionen

-s, --shared: Eine gemeinsame Sperre erhalten
- x, --exclusive: Erhalten Sie eine exklusive Sperre
-u, --unlock: Entfernen Sie eine Sperre, die normalerweise nicht benötigt wird. Die Sperre wird automatisch verworfen, nachdem das Skript ausgeführt wurde
-n, -- nonblock: Wenn nicht, erhalten Sie die Sperre sofort, schlagen Sie direkt fehl, anstatt zu warten
-w, --timeout: Wenn die Sperre nicht sofort erhalten wird, warten Sie auf die angegebene Zeit
-o, --close: Schließen Sie die Datei Deskriptor, bevor Sie den Befehl ausführen. Wird verwendet, um die Sperre zu steuern, wenn der Befehl einen untergeordneten Prozess erzeugt
-c, --command: Führen Sie einen separaten Befehl in der Shell aus
-h, --help Hilfe anzeigen
-V, - -version: Version anzeigen

Führen Sie eine PHP-Datei aus. Wenn sie gesperrt ist, schlägt sie fehl, ohne zu warten. Die Parameter sind -xn

* * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php >> /home/fdipzone / php/test.log'

Wenn die Aufgabe nicht abgeschlossen ist und die nächste Aufgabe feststellt, dass /tmp/mytest.lock gesperrt ist, wird die aktuelle Aufgabe beendet und beurteilt wird im nächsten Zyklus erneut durchgeführt.

Verwandte Empfehlungen:

Detaillierte Erläuterung gängiger Methoden zur Implementierung von Daemons in PHP

Zwei gängige Methoden zur Implementierung von Daemons in PHP

Methodenanalyse zum Implementierungsprinzip des Skript-Daemons in PHP

Das obige ist der detaillierte Inhalt vonPrinzip und Implementierungscode des PHP-Skript-Daemon-Prozesses. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!