|
好长一段时间本人的博客都未更新了,新年向大家献上第一份博文。网上关于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","[OK]";
- }
- 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","[OK]";
- }
- elsif ($args =~ /(\breload\b)+/) {
- print BOLD GREEN "Reload nginx now";
- system "killall -s HUP $prog";
- printf "%-s\n","[OK]";
- }
- elsif ($args =~ /(\bstatus\b)+/) {
- if (open FILE,"
|
|
|