linux系统中运行perl,如何在Linux中将Perl脚本作为系统守护程序运行?

5c810152a2a48dae43a70fe0ff554dbc.png

qq_笑_17

最简单的方法是使用Proc :: Daemon。#!/usr/bin/perluse strict;use warnings;use Proc::Daemon;Proc::Daemon::Init;my $continue = 1;$SIG{TERM} = sub { $continue = 0 };while ($continue) {     #do stuff}或者,您可以执行Proc :: Daemon的所有操作:分叉一个孩子并退出父进程。成为会话负责人(将程序与控制终端分离)。分叉另一个子进程并退出第一个子进程。这防止了获得控制终端的可能性。将当前工作目录更改为"/"。清除文件创建掩码。关闭所有打开的文件描述符。与运行级别系统集成很容易。在中,您需要一个类似以下的脚本(XXXXXXXXXXXX用Perl脚本的名称,YYYYYYYYYYYYYYYYYYY其功能描述以及/path/toPerl脚本的路径替换)/etc/init.d。由于使用的是CentOS,一旦将脚本包含在中/etc/init.d,就可以使用chkconfig在各种运行级别中将其关闭或打开。#!/bin/bash## XXXXXXXXXXXX This starts and stops XXXXXXXXXXXX## chkconfig: 2345 12 88# description: XXXXXXXXXXXX is YYYYYYYYYYYYYYYYYYY# processname: XXXXXXXXXXXX# pidfile: /var/run/XXXXXXXXXXXX.pid### BEGIN INIT INFO# Provides: $XXXXXXXXXXXX### END INIT INFO# Source function library.. /etc/init.d/functionsbinary="/path/to/XXXXXXXXXXXX"[ -x $binary ] || exit 0RETVAL=0start() {    echo -n "Starting XXXXXXXXXXXX: "    daemon $binary    RETVAL=$?    PID=$!    echo    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/XXXXXXXXXXXX    echo $PID > /var/run/XXXXXXXXXXXX.pid}stop() {    echo -n "Shutting down XXXXXXXXXXXX: "    killproc XXXXXXXXXXXX    RETVAL=$?    echo    if [ $RETVAL -eq 0 ]; then        rm -f /var/lock/subsys/XXXXXXXXXXXX        rm -f /var/run/XXXXXXXXXXXX.pid    fi}restart() {    echo -n "Restarting XXXXXXXXXXXX: "    stop    sleep 2    start}case "$1" in    start)        start    ;;    stop)        stop    ;;    status)        status XXXXXXXXXXXX    ;;    restart)        restart    ;;    *)        echo "Usage: $0 {start|stop|status|restart}"    ;;esacexit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值