师傅你而 发表于 2018-8-31 12:12:45

perl版nginx启动daemon-BSDerの

  好长一段时间本人的博客都未更新了,新年向大家献上第一份博文。网上关于nginx的启动脚本大都是shell版的,我尝试着用perl重写了一下,不足之处,恳请指正。
  code:
  


[*]#!/bin/env perl
[*]#
[*]# chkconfig:   - 85 15
[*]# description: nginx is a web server
[*]# progname:    nginx
[*]# config_file: /opt/nginx/conf/nginx.conf
[*]# pid_file:    /opt/nginx/logs/nginx.pid
[*]# author:      Henry He on 2012/01/09
[*]
[*]use strict;
[*]use File::Basename qw/basename/;
[*]use Term::ANSIColor qw(:constants);
[*]
[*]# Global options for my color
[*]$Term::ANSIColor::AUTORESET = 1;
[*]
[*]my $base_dir = "/opt/nginx";
[*]my $prog = `basename $base_dir`;
[*]chomp $prog;
[*]
[*]if (! -f "$base_dir/conf/nginx.conf") {
[*]   &errorexit("no nginx config file");
[*]}
[*]
[*]if (! -x "$base_dir/sbin/nginx") {
[*]   &errorexit("can't excute nginx binary file");
[*]}
[*]
[*]if (@ARGV != 0) {
[*]
[*]    for my $args (@ARGV) {
[*]
[*]      if ($args =~ /(\bstart\b)+/) {
[*]            print BOLD GREEN "Starting nginx now ...";
[*]            system "$base_dir/sbin/nginx -c $base_dir/conf/nginx.conf";
[*]            system "touch /var/lock/subsys/$prog";
[*]            printf "%-s\n","";
[*]      }
[*]      elsif ($args =~ /(\bstop\b)+/) {
[*]            print BOLD GREEN "Stopping nginx now ...";
[*]            system "killall -s QUIT $prog";
[*]            unlink "$base_dir/logs/nginx.pid";
[*]            unlink "/var/lock/subsys/$prog";
[*]            printf "%-s\n","";
[*]      }
[*]       elsif ($args =~ /(\breload\b)+/) {
[*]            print BOLD GREEN "Reload nginx now";
[*]            system "killall -s HUP $prog";
[*]            printf "%-s\n","";
[*]      }
[*]      elsif ($args =~ /(\bstatus\b)+/) {
[*]
[*]            if (open FILE,"
页: [1]
查看完整版本: perl版nginx启动daemon-BSDerの