perl实例之创建linux进程

发布时间:2020-02-10编辑:脚本学堂
分享二个使用perl创建linux进程的例子,学习下perl编程中对进程的操作方法,有需要的朋友参考下。

本节内容:
在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); 
    }