From b1a970c5a37f826991b0d44023dba0c7fd064dcd Mon Sep 17 00:00:00 2001 From: hagbard Date: Tue, 9 Oct 2018 16:10:28 -0700 Subject: T870: Commit-confirm restarts the server even after commit - bugfix: show reboot shows now systemd scheduled and commit-confirm scheduled reboots. --- scripts/vyatta-reboot.pl | 50 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) (limited to 'scripts') diff --git a/scripts/vyatta-reboot.pl b/scripts/vyatta-reboot.pl index 860e3da..93cda4f 100755 --- a/scripts/vyatta-reboot.pl +++ b/scripts/vyatta-reboot.pl @@ -33,7 +33,7 @@ use strict; use warnings; my $reboot_job_file = '/var/run/reboot.job'; - +my $confirm_job_file = '/var/run/confirm.job'; sub parse_at_output { my @lines = @_; @@ -49,18 +49,50 @@ sub parse_at_output { } sub is_reboot_pending { - - if ( ! -f $reboot_job_file) { - return (0, ''); - } + ### that won't exist anymore but may be called somewhere else + if ( -f $reboot_job_file ) + { my $job = `cat $reboot_job_file`; chomp $job; my $line = `atq $job`; - if ($line =~ /\d+\s+(.*)\sa root$/) { - return (1, $1); - } else { - return (0, ''); + if ($line =~ /\d+\s+(.*)\sa root$/) + { + return (1, $1); + } + else + { + return (0, ''); + } + } + + #### comit-confirm creates an at job as well + if ( -f $confirm_job_file) + { + my $job = `cat $confirm_job_file`; + chomp $job; + my $line = `atq $job`; + if ($line =~ /\d+\s+(.*)\sa root$/) + { + return (1, $1); + } + else + { + return (0, ''); + } + } + #### an now the systemd job from powrctrl.py + my $line = `systemctl status systemd-shutdownd.service`; + if ($line =~ /Active: active/) + { + if($line =~ m/Status:(.*)/) + { + return (1, $1); } + } + else + { + return (0, ''); + } } sub do_reboot { -- cgit v1.2.3