本节内容:
在perl中创建linux进程的方法。
 
例1:创建进程  
 
复制代码 代码示例:
#!/usr/bin/perl  
#a simple demon  
use strict;  
  
my $pid = fork();  
print $pid."n";  
if($pid)  
{  
        print "processing...n";  
        exit(0);  
}  
else  
{  
        print "child processing...n";  
}  
setpgrp();  
  
while(1)  
{  
        sleep(10);  
        open(MYFILE,">>/tmp/test.log");  
        my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);  
        $year+=1900;$mon++;  
  
        print MYFILE ("Now is $year-$mon-$mday $hour:$min:$sec.n");  
        close(MYFILE);  
} 
例2:定时删除/tmp目录下的文件  
 
复制代码 代码示例:
#!/usr/bin/perl  
use strict;  
  
our $DIR_PATH="/tmp";  
&main();  
exit;  
  
sub main  
{     
  
    die( "Can't fork") unless defined (my $pid = fork());  
    print "Process...n$pidn";  
    setpgrp();  
    while(1)  
    {  
        opendir DIR, ${DIR_PATH} or die "Can not open "$DIR_PATH"n";  
        my @filelist = readdir DIR;  
        my @res;  
        my $a;  
        my $file;  
  
        open(MYFILE,">>/tmp/delfile.log");  
  
        foreach $file (@filelist)   
        {  
                ($file eq "..") and next;  
                ($file eq  ".")  and next;  
                @res = stat($DIR_PATH."/".$file);  
                $a = time() - @res[10];  
                  
                if ($a > 258200 )  
                {  
                        system("rm -rf ".$DIR_PATH."/".$file);  
                        print MYFILE $DIR_PATH."/".$file."n";  
                }  
        }  
  
        close(MYFILE);  
        sleep(86400);  
    }  
}