Sfoglia il codice sorgente

Type for some systemd services changed to simple

root 3 settimane fa
parent
commit
b25eb9afb2

+ 2 - 3
docs/systemd/dhcp-log.service

@@ -4,14 +4,13 @@ After=network.target mariadb.service dnsmasq.service dhcpd.service dhcp-log-trun
 Requires=dhcp-log-truncate.service
 
 [Service]
-Type=forking
+Type=simple
 User=eye
 Group=eye
 RuntimeDirectory=eye-dhcp
 RuntimeDirectoryMode=0700
 RuntimeDirectoryPreserve=yes
-ExecStart=/opt/Eye/scripts/dhcp-log.pl --start
-PIDFile=/run/eye-dhcp/dhcp-log.pid
+ExecStart=/opt/Eye/scripts/dhcp-log.pl
 RestartSec=30
 Restart=on-failure
 

+ 2 - 3
docs/systemd/stat-sync.service

@@ -3,11 +3,10 @@ Description=Urgent sync access changes from Eye
 After=network.target mariadb.service
 
 [Service]
-Type=forking
+Type=simple
 User=eye
 Group=eye
-ExecStart=/opt/Eye/scripts/stat-sync.pl --start
-PIDFile=/run/eye-sync/stat-sync.pid
+ExecStart=/opt/Eye/scripts/stat-sync.pl
 RuntimeDirectory=eye-sync
 RuntimeDirectoryMode=0700
 RuntimeDirectoryPreserve=yes

+ 2 - 3
docs/systemd/syslog-stat.service

@@ -4,14 +4,13 @@ After=network.target mariadb.service syslog-ng.service
 PartOf=syslog-ng.service
 
 [Service]
-Type=forking
+Type=simple
 User=eye
 Group=eye
-ExecStart=/opt/Eye/scripts/syslog-stat.pl --start
+ExecStart=/opt/Eye/scripts/syslog-stat.pl
 RuntimeDirectory=eye-syslog
 RuntimeDirectoryMode=0700
 RuntimeDirectoryPreserve=yes
-PIDFile=/run/eye-syslog/syslog-stat.pid
 RestartSec=30
 Restart=on-failure
 

+ 24 - 117
scripts/dhcp-log.pl

@@ -24,8 +24,6 @@ use eyelib::common;
 use eyelib::net_utils;
 use eyelib::logconfig;
 use strict;
-use Getopt::Long;
-use Proc::Daemon;
 use POSIX;
 use Net::Netmask;
 use Text::Iconv;
@@ -46,91 +44,16 @@ setpriority(0, 0, 19);
 my $mute_time = 300;            # Time (in seconds) to suppress duplicate DHCP events
 my $log_file = '/var/log/dhcp.log';
 
-# Determine process name and PID file
-my $proc_name = $MY_NAME;
-$proc_name =~ s/\.[^.]+$//;
-my $pid_file = '/run/eye-dhcp/' . $proc_name;
-my $pf = $pid_file . '.pid';
-
-# Daemon setup
-my $daemon = Proc::Daemon->new(
-    pid_file => $pf,
-    work_dir => $HOME_DIR
-);
-
-# Check if process is already running
-my $pid = $daemon->Status($pf);
-
-my $daemonize = 1;  # Default: run in background
-
-# === COMMAND-LINE ARGUMENT HANDLING ===
-
-GetOptions(
-    'daemon!' => \$daemonize,
-    "help"    => \&usage,
-    "reload"  => \&reload,
-    "restart" => \&restart,
-    "start"   => \&run,
-    "status"  => \&status,
-    "stop"    => \&stop
-) or &usage;
-
-exit(0);
-
-# === DAEMON CONTROL FUNCTIONS ===
-
-sub stop {
-    log_info("Stop requested...");
-    if ($pid) {
-        print "Stopping pid $pid...";
-        if ($daemon->Kill_Daemon($pf)) {
-            print "Successfully stopped.\n";
-            log_info("Daemon stopped successfully (PID $pid).");
-        } else {
-            print "Could not find $pid. Was it running?\n";
-            log_warning("Failed to stop process PID $pid — possibly already terminated.");
-        }
-    } else {
-        print "Not running, nothing to stop.\n";
-        log_info("Daemon is not running — nothing to stop.");
-    }
-}
-
-sub status {
-    if ($pid) {
-        print "Running with pid $pid.\n";
-        log_info("Status: daemon is running (PID $pid).");
-    } else {
-        print "Not running.\n";
-        log_info("Status: daemon is not running.");
-    }
-}
-
-sub run {
-    log_info("Starting main DHCP log processing loop...");
+wrlog($W_INFO,"Starting main DHCP log processing loop...");
 
-    if ($pid) {
-        print "Already Running with pid $pid\n";
-        log_warning("Attempt to start already running daemon (PID $pid).");
-        return;
-    }
-
-    print "Starting...\n";
-    log_info("Initializing daemon...");
+setpriority(0, 0, 19);  # Ensure priority is set in child process
 
-    if ($daemonize) {
-        $daemon->Init;
-        log_debug("Daemon initialized in background mode.");
-    }
+# Converter for legacy cp866-encoded logs
+my $converter = Text::Iconv->new("cp866", "utf8");
 
-    setpriority(0, 0, 19);  # Ensure priority is set in child process
-
-    # Converter for legacy cp866-encoded logs
-    my $converter = Text::Iconv->new("cp866", "utf8");
-
-    # Main infinite log-processing loop
-    while (1) {
-        eval {
+# Main infinite log-processing loop
+while (1) {
+    eval {
             log_debug("Starting new DHCP log processing cycle.");
 
             my %leases;  # cache to suppress duplicates
@@ -147,13 +70,13 @@ sub run {
                 ignore_nonexistent => 1
             ) || die "$log_file not found!";
 
-            log_info("Beginning to read logs from $log_file...");
+            wrlog($W_INFO,"Beginning to read logs from $log_file...");
 
             while (my $logline = $dhcp_log->read) {
                 next unless $logline;
                 chomp($logline);
 
-                log_info("Log line received: $logline");
+                wrlog($W_INFO,"Log line received: $logline");
 
                 # Remove non-printable characters (keep letters, digits, punctuation, whitespace)
                 $logline =~ s/[^\p{L}\p{N}\p{P}\p{Z}]//g;
@@ -180,7 +103,7 @@ sub run {
                 # Skip lines without valid event type
                 next unless $dhcp_event{'type'} && $dhcp_event{'type'} =~ /^(old|add|del)$/i;
 
-                log_info("Processing event: type='$dhcp_event{'type'}', MAC='$dhcp_event{'mac'}', IP='$dhcp_event{'ip'}', NAME='$dhcp_event{'hostname'}', client-id='$dhcp_event{'client_id'}', circuit_id='$dhcp_event{'decoded_circuit_id'}', remote_id='$dhcp_event{'$decoded_remote_id'}'");
+                wrlog($W_INFO,"Processing event: type='$dhcp_event{'type'}', MAC='$dhcp_event{'mac'}', IP='$dhcp_event{'ip'}', NAME='$dhcp_event{'hostname'}', client-id='$dhcp_event{'client_id'}', circuit_id='$dhcp_event{'decoded_circuit_id'}', remote_id='$dhcp_event{'$decoded_remote_id'}'");
 
                 # Suppress duplicate events within $mute_time window
                 if (exists $leases{$dhcp_event{'ip'}} && $leases{$dhcp_event{'ip'}}{type} eq $dhcp_event{'type'} && (time() - $leases{$dhcp_event{'ip'}}{last_time} <= $mute_time)) {
@@ -229,7 +152,7 @@ sub run {
                             $dhcp_event{'circuit_id'} = $dhcp_event{'decoded_circuit_id'};
                             $dhcp_record->{circuit_id} = $dhcp_event{'circuit_id'};
                             $dhcp_record->{remote_id} = $dhcp_event{'remote_id'};
-                            log_info("Switch found via decoded_remote_id: " . $switch->{device_name});
+                            wrlog($W_INFO,"Switch found via decoded_remote_id: " . $switch->{device_name});
                         }
                     }
 
@@ -247,7 +170,7 @@ sub run {
                             $dhcp_event{'remote_id'} = $t_remote_id;
                             $dhcp_record->{circuit_id} = $dhcp_event{'circuit_id'};
                             $dhcp_record->{remote_id} = $dhcp_event{'remote_id'};
-                            log_info("Switch found via remote_id: " . $switch->{device_name});
+                            wrlog($W_INFO,"Switch found via remote_id: " . $switch->{device_name});
                         }
                     }
 
@@ -261,7 +184,7 @@ sub run {
                                          "AND D.device_name LIKE ?";
                             $switch = get_record_sql($hdb, $devSQL, $id_words[0] . '%');
                             if ($switch) {
-                                log_info("Switch found by name: " . $switch->{device_name});
+                                wrlog($W_INFO,"Switch found by name: " . $switch->{device_name});
                             }
                         }
                     }
@@ -287,7 +210,7 @@ sub run {
 
                     # === LOG IF NO SWITCH MATCH FOUND ===
                     unless ($switch) {
-                        log_info("No matching switch found for DHCP event: IP=$dhcp_event{'ip'}, MAC=$dhcp_event{'mac'}, remote_id='$dhcp_event{'remote_id'}', circuit_id='$dhcp_event{'circuit_id'}'");
+                        wrlog($W_INFO,"No matching switch found for DHCP event: IP=$dhcp_event{'ip'}, MAC=$dhcp_event{'mac'}, remote_id='$dhcp_event{'remote_id'}', circuit_id='$dhcp_event{'circuit_id'}'");
                     }
 
                     # === PORT IDENTIFICATION ===
@@ -320,7 +243,7 @@ sub run {
                             if ($hex_port && $hex_port =~ /^[0-9a-fA-F]{2}$/) {
                                 my $t_port = hex($hex_port);
                                 $switch_port = $device_ports_h{$t_port} if exists $device_ports_h{$t_port};
-                                log_info("Port identified via hex: $t_port") if $switch_port;
+                                wrlog($W_INFO,"Port identified via hex: $t_port") if $switch_port;
                             }
                         }
 
@@ -341,7 +264,7 @@ sub run {
                             }
                         } else {
                             db_log_verbose($hdb, "DHCP $dhcp_event{'type'}: IP=$dhcp_event{'ip'}, MAC=$dhcp_event{'mac'} " . $switch->{device_name} . " (port not identified)");
-                            log_info("Failed to identify port for IP=$dhcp_event{'ip'} on switch=" . $switch->{device_name});
+                            wrlog($W_INFO,"Failed to identify port for IP=$dhcp_event{'ip'} on switch=" . $switch->{device_name});
                         }
                     }
                     log_verbose("Identified Switch: " . ($switch ? $switch->{device_name} : "NONE") . " Port : " . ($switch_port ? $switch_port->{ifname} : "NONE"));
@@ -352,27 +275,11 @@ sub run {
 
         # Exception handling
         if ($@) {
-            log_error("Critical error in main loop: $@");
-            sleep(60);  # pause before retry
-        }
-    } # end while(1)
-}
-
-# === HELPER FUNCTIONS ===
-
-sub usage {
-    print "usage: $MY_NAME (start|stop|status|restart)\n";
-    exit(0);
-}
-
-sub reload {
-    print "reload process not implemented.\n";
-    log_warning("Command 'reload' is not supported.");
-}
-
-sub restart {
-    log_info("Restart requested...");
-    stop();
-    sleep(2);
-    run();
-}
+            wrlog($W_ERROR,"Critical error in main loop: $@");
+            sleep(60);
+    }
+} # end while(1)
+
+wrlog($W_INFO,"Process stopped.");
+
+exit;

+ 0 - 10
scripts/eyelib/config.pm

@@ -31,7 +31,6 @@ use constant NOTIFY_ALL => NOTIFY_CREATE | NOTIFY_UPDATE | NOTIFY_DELETE; # 0111
 @EXPORT = qw(
 $add_unknown_user
 $admin_email
-$all_networks
 $BEGIN_STR
 $connections_history
 $cpu_count
@@ -52,7 +51,6 @@ $domain_auth
 $domain_name
 $END_STR
 $fping
-$free_networks
 $history
 $history_dhcp
 $history_log_day
@@ -60,7 +58,6 @@ $history_syslog_day
 $history_trafstat_day
 $HOME_DIR
 $HOSTNAME
-$hotspot_networks
 $KB
 $last_refresh_config
 $L_DEBUG
@@ -78,7 +75,6 @@ $L_WARNING
 $MAX_SLEEP
 $MIN_SLEEP
 $MY_NAME
-$office_networks
 $org_name
 $parallel_process_count
 $router_ip
@@ -94,7 +90,6 @@ $SPID
 $tftp_dir
 $tftp_server
 $urgent_sync
-$vpn_networks;
 $WAIT_TIME
 $WARN_MSG
 
@@ -264,14 +259,9 @@ our $dhcp_server;
 our $snmp_default_version;
 our $snmp_default_community;
 our $KB;
-our $office_networks;
-our $hotspot_networks;
-our $all_networks;
 our @office_network_list;
 our @hotspot_network_list;
 our @all_network_list;
-our $free_networks;
-our $vpn_networks;
 our @free_network_list;
 our @vpn_network_list;
 our $dhcp_pool;

+ 26 - 102
scripts/stat-sync.pl

@@ -22,38 +22,12 @@ use eyelib::common;
 use eyelib::logconfig;
 use eyelib::net_utils;
 use strict;
-use Getopt::Long;
-use Proc::Daemon;
 use Cwd;
 use Net::Netmask;
 use DateTime;
 
 my $mute_time=300;
 
-my $pf = '/run/eye-sync/stat-sync.pid';
-
-my $daemon = Proc::Daemon->new(
-        pid_file => $pf,
-        work_dir => $HOME_DIR
-);
-
-# are you running?  Returns 0 if not.
-my $pid = $daemon->Status($pf);
-
-my $daemonize = 1;
-
-GetOptions(
-    'daemon!' => \$daemonize,
-    "help"    => \&usage,
-    "reload"  => \&reload,
-    "restart" => \&restart,
-    "start"   => \&run,
-    "status"  => \&status,
-    "stop"    => \&stop
-) or &usage;
-
-exit(0);
-
 ### Analyze DHCP requests
 
 # === 1. Получение событий из очереди DHCP ===
@@ -107,7 +81,7 @@ sub _process_single_dhcp_event {
     log_debug("Deleted DHCP event ID $event->{id} from queue (affected rows: $rows)");
     # Проверяем, что запись создана/обновлена
     if (!$dhcp_record or !$dhcp_record->{auth_id} ){
-        log_error("User ip auth record not created by DHCP request for ip: $ip mac: $event->{mac}!");
+        wrlog($W_ERROR,"User ip auth record not created by DHCP request for ip: $ip mac: $event->{mac}!");
         return;
         }
     # Обновляем кэш последних событий
@@ -121,18 +95,18 @@ sub process_dhcp_queue {
     # Получаем все события
     my @dhcp_events = _fetch_dhcp_queue($hdb);
     return unless @dhcp_events;
-    log_info("Processing " . scalar(@dhcp_events) . " DHCP event(s) from queue");
+    wrlog($W_INFO,"Processing " . scalar(@dhcp_events) . " DHCP event(s) from queue");
     # Обрабатываем каждое событие
     foreach my $dhcp (@dhcp_events) {
         eval {
             _process_single_dhcp_event($hdb, $dhcp, $leases_ref, $mute_time);
         };
         if ($@) {
-            log_error("Failed to process DHCP event ID $dhcp->{id}: $@");
+            wrlog($W_ERROR,"Failed to process DHCP event ID $dhcp->{id}: $@");
             # Не прерываем остальные события
         }
     }
-    log_info("DHCP queue processing completed");
+    wrlog($W_INFO,"DHCP queue processing completed");
 }
 
 ### UPDATE user state
@@ -162,7 +136,7 @@ sub _clear_changed_flags_for_non_office_ips {
         $cleared += $rows;
     }
     if ($cleared) {
-        log_info("Cleared 'changed' flags for $cleared records with non-office IPs");
+        wrlog($W_INFO,"Cleared 'changed' flags for $cleared records with non-office IPs");
     }
 }
 
@@ -172,7 +146,7 @@ sub _process_dhcp_changes {
     my $changed = get_record_sql($dbh, "SELECT COUNT(*) AS c_count FROM user_auth WHERE dhcp_changed = 1");
     my $count = $changed ? ($changed->{c_count} // 0) : 0;
     return if $count == 0;
-    log_info("Found $count record(s) with dhcp_changed=1");
+    wrlog($W_INFO,"Found $count record(s) with dhcp_changed=1");
     # Сбрасываем флаги
     do_sql($dbh, "UPDATE user_auth SET dhcp_changed = 0");
     # Запускаем внешний скрипт
@@ -183,9 +157,9 @@ sub _process_dhcp_changes {
     }
     my %result = do_exec_ref("/usr/bin/sudo $dhcp_exec");
     if ($result{status} != 0) {
-        log_error("DHCP config sync failed: " . ($result{stderr} // 'no error output'));
+        wrlog($W_ERROR,"DHCP config sync failed: " . ($result{stderr} // 'no error output'));
     } else {
-        log_info("DHCP config synced successfully");
+        wrlog($W_INFO,"DHCP config synced successfully");
     }
 }
 
@@ -195,7 +169,7 @@ sub _process_acl_changes {
     my $changed = get_record_sql($dbh, "SELECT COUNT(*) AS c_count FROM user_auth WHERE changed = 1");
     my $count = $changed ? ($changed->{c_count} // 0) : 0;
     return if $count == 0;
-    log_info("Found $count record(s) with changed=1 (ACL/DHCP)");
+    wrlog($W_INFO,"Found $count record(s) with changed=1 (ACL/DHCP)");
     my $acl_exec = get_option($dbh, 37);
     if (!$acl_exec) {
         log_warning("ACL sync script (opt 37) not configured");
@@ -203,9 +177,9 @@ sub _process_acl_changes {
     }
     my %result = do_exec_ref("$acl_exec --changes-only");
     if ($result{status} != 0) {
-        log_error("Gateway ACL sync failed: " . ($result{stderr} // 'no error output'));
+        wrlog($W_ERROR,"Gateway ACL sync failed: " . ($result{stderr} // 'no error output'));
     } else {
-        log_info("Gateway ACL synced successfully");
+        wrlog($W_INFO,"Gateway ACL synced successfully");
     }
 }
 
@@ -214,16 +188,16 @@ sub _process_dns_queue {
     my ($dbh) = @_;
     my @dns_changed = get_records_sql($dbh, "SELECT DISTINCT auth_id FROM dns_queue");
     return unless @dns_changed;
-    log_info("Processing DNS queue for " . scalar(@dns_changed) . " auth_id(s)");
+    wrlog($W_INFO,"Processing DNS queue for " . scalar(@dns_changed) . " auth_id(s)");
     for my $auth (@dns_changed) {
         my $auth_id = $auth->{auth_id};
         eval {
             update_dns_record($dbh, $auth_id);
             do_sql($dbh, "DELETE FROM dns_queue WHERE auth_id = ?", $auth_id);
-            log_info("DNS processed and cleared for auth_id: $auth_id");
+            wrlog($W_INFO,"DNS processed and cleared for auth_id: $auth_id");
         };
         if ($@) {
-            log_error("Failed to process DNS for auth_id=$auth_id: $@");
+            wrlog($W_ERROR,"Failed to process DNS for auth_id=$auth_id: $@");
         }
     }
 }
@@ -238,20 +212,20 @@ sub _cleanup_expired_dynamic_users {
         $now_str
     );
     return unless @users_auth;
-    log_info("Cleaning up " . scalar(@users_auth) . " expired dynamic user_auth records");
+    wrlog($W_INFO,"Cleaning up " . scalar(@users_auth) . " expired dynamic user_auth records");
     for my $row (@users_auth) {
         eval {
             delete_user_auth($dbh, $row->{id});
-            db_log_info($dbh, "Removed dynamic user auth record for auth_id: $row->{id} by end_life time: $row->{end_life}", $row->{id});
+            db_wrlog($W_INFO,$dbh, "Removed dynamic user auth record for auth_id: $row->{id} by end_life time: $row->{end_life}", $row->{id});
             # Удаляем пользователя, если больше нет активных auth-записей
             my $u_count = get_count_records($dbh, 'user_auth', 'deleted = 0 AND user_id = ?', $row->{user_id});
             if ($u_count == 0) {
                 delete_user($dbh, $row->{user_id});
-                log_info("Deleted orphaned user_id: $row->{user_id}");
+                wrlog($W_INFO,"Deleted orphaned user_id: $row->{user_id}");
             }
         };
         if ($@) {
-            log_error("Error cleaning up auth_id $row->{id}: $@");
+            wrlog($W_ERROR,"Error cleaning up auth_id $row->{id}: $@");
         }
     }
 }
@@ -265,7 +239,7 @@ sub refresh_config_if_needed {
     init_option($hdb);
     my $urgent_sync = get_option($hdb, 50);
     if ($urgent_sync) {
-        log_info("Urgent sync triggered (option 50)");
+        wrlog($W_INFO,"Urgent sync triggered (option 50)");
         _reset_changed_flags_for_default_ous($hdb, $default_user_ou_id, $default_hotspot_ou_id);
         _clear_changed_flags_for_non_office_ips($hdb, $office_networks);
         _process_dhcp_changes($hdb);
@@ -277,54 +251,19 @@ sub refresh_config_if_needed {
     log_debug("Config refresh cycle completed");
 }
 
-sub stop {
-        if ($pid) {
-                print "Stopping pid $pid...";
-                if ($daemon->Kill_Daemon($pf)) {
-                        print "Successfully stopped.\n";
-                } else {
-                        print "Could not find $pid.  Was it running?\n";
-                }
-         } else {
-                print "Not running, nothing to stop.\n";
-         }
-}
-
-sub status {
-        if ($pid) {
-                print "Running with pid $pid.\n";
-        } else {
-                print "Not running.\n";
-        }
-}
-
-sub run {
-if (!$pid) {
-    print "Starting...";
-    if ($daemonize) {
-        # when Init happens, everything under it runs in the child process.
-        # this is important when dealing with file handles, due to the fact
-        # Proc::Daemon shuts down all open file handles when Init happens.
-        # Keep this in mind when laying out your program, particularly if
-        # you use filehandles.
-        $daemon->Init;
-        }
+wrlog($W_INFO,"Starting...");
 
-    setpriority(0,0,19);
+setpriority(0,0,19);
 
-    my %leases;
+my %leases;
 
-    while (1) {
+while (1) {
 
         eval {
-
         # Create new database handle. If we can't connect, die()
         my $hdb = init_db();
-
         # Process DHCP queue every 10 seconds
         process_dhcp_queue($hdb, \%leases, $mute_time);
-
-
         # Update state every 60 seconds
         refresh_config_if_needed(
             $hdb, 
@@ -334,25 +273,10 @@ if (!$pid) {
             $office_networks
             );
         sleep(10);
-
         };
-        if ($@) { log_error("Exception found: $@"); sleep(300); }
-        }
-    } else {
-        print "Already Running with pid $pid\n";
-    }
-}
-
-sub usage {
-    print "usage: stat-sync.pl (start|stop|restart)\n";
-    exit(0);
+        if ($@) { wrlog($W_ERROR,"Exception found: $@"); sleep(300); }
 }
 
-sub reload {
-    print "reload process not implemented.\n";
-}
+wrlog($W_INFO,"Process stopped.");
 
-sub restart {
-    stop;
-    run;
-}
+exit 0;

+ 6 - 82
scripts/syslog-stat.pl

@@ -26,73 +26,12 @@ use Data::Dumper;
 use DBI;
 use Time::Local;
 use Date::Parse;
-use Getopt::Long;
 use IO::Socket::UNIX qw( SOCK_STREAM );
-use Proc::Daemon;
 use Cwd;
 
+wrlog($W_INFO,"Starting...");
 
-my $pf = '/run/eye-syslog/syslog-stat.pid';
-my $socket_path='/run/syslog-ng.socket';
-
-my $daemon = Proc::Daemon->new(
-        pid_file => $pf,
-        work_dir => $HOME_DIR
-);
-
-# are you running?  Returns 0 if not.
-my $pid = $daemon->Status($pf);
-
-my $daemonize = 1;
-
-GetOptions(
-    'daemon!' => \$daemonize,
-    "help"    => \&usage,
-    "reload"  => \&reload,
-    "restart" => \&restart,
-    "start"   => \&run,
-    "status"  => \&status,
-    "stop"    => \&stop
-) or &usage;
-
-exit(0);
-
-sub stop {
-        if ($pid) {
-                print "Stopping pid $pid...";
-                if ($daemon->Kill_Daemon($pf)) {
-                        print "Successfully stopped.\n";
-                } else {
-                        print "Could not find $pid.  Was it running?\n";
-                }
-         } else {
-                print "Not running, nothing to stop.\n";
-         }
-}
-
-sub status {
-        if ($pid) {
-                print "Running with pid $pid.\n";
-        } else {
-                print "Not running.\n";
-        }
-}
-
-sub run {
-if (!$pid) {
-    print "Starting...";
-    if ($daemonize) {
-        # when Init happens, everything under it runs in the child process.
-        # this is important when dealing with file handles, due to the fact
-        # Proc::Daemon shuts down all open file handles when Init happens.
-        # Keep this in mind when laying out your program, particularly if
-        # you use filehandles.
-        $daemon->Init;
-        }
-    setpriority(0,0,19);
-
-$SPID=~s/\.pl$/\.pid/;
-write_to_file($SPID,$$);
+setpriority(0,0,19);
 
 my %trash_patterns = (
     'Receive illegal destination ip packet 255.0.0.0 ,drop it' =>'1',
@@ -174,7 +113,7 @@ eval {
         foreach my $pattern (keys %warning_patterns) {
             next if (!$pattern);
             if ($message=~/$pattern/i) {
-                log_info("Warning pattern $pattern found! Send email.",1);
+                wrlog($W_INFO,"Warning pattern $pattern found! Send email.",1);
                 sendEmail("Syslog warning for $hostname [".$host_ip."]!",$host_ip." ".$message);
                 last;
                 }
@@ -183,23 +122,8 @@ eval {
 
     close(SYSLOG);
     };
-if ($@) { log_error("Exception found: $@"); sleep(60); }
-}
-    } else {
-        print "Already Running with pid $pid\n";
-    }
+if ($@) { wrlog($W_ERROR,"Exception found: $@"); sleep(60); }
 }
 
-sub usage {
-    print "usage: syslog-monitord.pl (start|stop|status|restart)\n";
-    exit(0);
-}
-
-sub reload {
-    print "reload process not implemented.\n";
-}
-
-sub restart {
-    stop;
-    run;
-}
+wrlog($W_INFO,"Process stopped.");
+exit 0;