perl实现守护进程

简介:
#!/usr/bin/perl
use strict;
use File::Slurp;
use Proc::Fork;
my $code=read_file('./dig.pl');
while(1){
   run_fork{
       child{ 
       eval($code);
       if($@){
           ERROR  $@;
        }
       exit;
    }
    parent{
       my $childPid=shift;
       waitpid $childPid,0;
    }
    };    
    sleep 1800;

}



本文转自cloves 51CTO博客,原文链接:http://blog.51cto.com/yeqing/1681656

相关文章
|
监控 开发者 Perl
探索研究Perl 进程管理
【9月更文挑战第21天】
138 7
|
存储 Shell Perl
Perl 教程 之 Perl 进程管理 7
在Perl中,可以通过$$或$PROCESS_ID获取进程ID,%ENV存储环境变量。exit()用于子进程退出,主进程等待所有子进程结束后才退出。打开的句柄在子进程中会被复制,不影响其他进程。POD是Perl内置的简单文档格式,以=head1开始,=cut结束。示例中展示了如何在代码中嵌入POD文档,并使用__END__或__DATA__注释后续内容。
150 1
|
存储 Shell Perl
Perl 教程 之 Perl 进程管理 4
Perl教程介绍了进程管理,包括使用$$或$PROCESS_ID获取PID,%ENV存储环境变量,exit()退出子进程,fork()创建新进程。在父进程返回子进程PID,在子进程返回0。fork与exec配合执行命令。示例展示了父进程如何等待子进程结束。当子进程变为僵死状态时,父进程需使用wait或waitpid终止,或设置$SIG{CHLD}为"IGNORE"。
186 1
|
Shell Perl
perl信号量实现进程间通信
开篇   近期在给一个客户编写数据库迁移工具,语言使用的是不太熟悉的perl。而需要做进程间通信源自这样一个需求,即并行迁移,想要真正的提升性能,我没有选择多线程的方式,而是直接选择多进程。   而我们都知道,多进程和多线程的区别就在于多进程的稳定性,多进程的内存资源是独立的,而多线程确实和父进程共享的。
2697 0
|
Linux Perl
Perl多进程与信号量
通过简单实例展示Perl多进程与信号量。
2763 0
|
11月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
11月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
990 5
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能

热门文章

最新文章