Generally, server programs run in the background of the system, which is very different from ordinary interactive command line programs. There is a function daemon in glibc. Calling this function can cause the current process to leave the terminal and become a daemon process. For details, see man daemon. There is currently no such function in PHP. Of course, if you are interested, you can write a PHP extension function to implement it.
There are two ways to implement daemonization of PHP command line programs:
1. Use nohup
Copy the code The code is as follows:
Daemonization is implemented here.
Execute php myprog.php alone. When ctrl c is pressed, program execution will be interrupted and the current process and child processes will be killed.
php myprog.php &, although the execution program is also run in the background, it actually relies on the terminal. When the user exits the terminal, the process will be killed.
2. Use PHP code to implement
3 13 14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
function daemonize() { $pid = pcntl_fork(); if ($pid == -1) { die("fork(1) failed!n"); } elseif ($pid > 0) { //Let the process started by the user exit exit(0); } //Create a new session different from the terminal to break away from the terminal posix_setsid(); $pid = pcntl_fork(); if ($pid == -1) { die("fork(2) failed!n"); } elseif ($pid > 0) { //The parent process exits, and the remaining child process becomes the final independent process exit(0); } } daemonize(); sleep(1000); |