To implement a daemon process under a Linux terminal, you can use crontab to schedule PHP script execution.
The function of the crontab command is to schedule the execution of some commands at certain intervals.
How to use crontab: crontab [ -e | -l | -r ] file name -e: edit task -l: display task information -r: delete scheduled execution task information
The format of crontab:
* * * * * Command
Minute Hour Day Month Week Command to run
"*" represents all numbers within the value range, "/" represents every, "*/5" represents every 5 units, "-" represents from a certain number to a certain number, "," means how many units to separate. a discrete number.
1. Edit directly with crontab command
crontab can implement scheduled tasks for users
crontab -u //Set the cron service of a certain user. Generally, the root user needs this parameter when executing this command
crontab -l //List the details of a user's cron service
crontab -r //Delete a user's cron service
crontab -e //Edit a user's cron service
For example, root checks his own cron settings: crontab -u root -l
For another example, root wants to delete fred's cron settings: crontab -u fred -r
When editing the cron service, edit the cron settings of the root user and enter: crontab -u root -e to enter vi editing mode. The format of the edited content is: * * * * * command
For example, we want to perform a task now:
The task requirement is to execute the PHP script every one minute and record the execution time and save it to result.log.
start.php:
#!/usr/bin/php
file_put_contents('result.log','Current running time:'.date("Y-m-d",time())."/r/n", FILE_APPEND);
shell.sh:
#!/bin/sh
php start.php
Terminal:
crontab -u root -e
#Enter vim editing mode:
*/1 * * * * shell.sh
:wqExit and save
www.2cto.com
In addition, in the WEB page, if the Client is disconnected (such as closing the browser), the PHP script can continue to execute.
The ignore_user_abort() function can be used with set_time_limit(0) and sleep($interval) to implement the program
ignore_user_abort(); //Even if the Client is disconnected (such as closing the browser), the PHP script can continue to execute.
set_time_limit(0); // The execution time is unlimited. The default execution time of PHP is 30 seconds. Through set_time_limit(0), the program can be executed without limit
$interval=60*5; // Run every 5 minutes
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // Wait 5 minutes
}while(true);
?>
ignore_user_abort(); //Even if the Client is disconnected (such as closing the browser), the PHP script can continue to execute.
set_time_limit(0); // The execution time is unlimited. The default execution time of PHP is 30 seconds. Through set_time_limit(0), the program can be executed without limit
$interval=60*5; //Run every 5 minutes
do{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // Wait 5 minutes
}while(true);
?>
Just run the page above and then close it, and the program will keep running.
Excerpted from God's blog