栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

最简单的方法是使用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的所有操作:

  1. 分叉一个孩子并退出父进程。
  2. 成为会话负责人(将程序与控制终端分离)。
  3. 分叉另一个子进程并退出第一个子进程。这防止了获得控制终端的可能性。
  4. 将当前工作目录更改为
    "/"
  5. 清除文件创建掩码。
  6. 关闭所有打开的文件描述符。

与运行级别系统集成很容易。在中,您需要一个类似以下的脚本(

XXXXXXXXXXXX
用Perl脚本的名称,
YYYYYYYYYYYYYYYYYYY
其功能描述以及
/path/to
Perl脚本的路径替换)
/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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号