aboutsummaryrefslogtreecommitdiffstats
path: root/rc.d/init.d/functions
diff options
context:
space:
mode:
authorLukas Nykryn <lnykryn@redhat.com>2012-08-03 11:14:22 +0200
committerLukas Nykryn <lnykryn@redhat.com>2012-08-07 10:01:57 +0200
commit763b7dcf6bf9e47d90546be1aabf1f724dd527f8 (patch)
tree58ef5828d1773a7373f28b3d54e7480b107d4e2b /rc.d/init.d/functions
parent6e62c51f3162081cc05ef546929aa98b8448b1cb (diff)
downloadinitscripts-763b7dcf6bf9e47d90546be1aabf1f724dd527f8.tar
initscripts-763b7dcf6bf9e47d90546be1aabf1f724dd527f8.tar.gz
initscripts-763b7dcf6bf9e47d90546be1aabf1f724dd527f8.tar.bz2
initscripts-763b7dcf6bf9e47d90546be1aabf1f724dd527f8.tar.xz
initscripts-763b7dcf6bf9e47d90546be1aabf1f724dd527f8.zip
Killproc -d should parse same values as sleep
Diffstat (limited to 'rc.d/init.d/functions')
-rw-r--r--rc.d/init.d/functions8
1 files changed, 6 insertions, 2 deletions
diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions
index 22ce79e5..ce6df4c7 100644
--- a/rc.d/init.d/functions
+++ b/rc.d/init.d/functions
@@ -271,7 +271,7 @@ daemon() {
killproc() {
local RC killlevel= base pid pid_file= delay try
- RC=0; delay=3
+ RC=0; delay=3; try=0
# Test syntax.
if [ "$#" -eq 0 ]; then
echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
@@ -282,7 +282,11 @@ killproc() {
shift 2
fi
if [ "$1" = "-d" ]; then
- delay=$2
+ delay=$(echo $2 | awk -v RS=' ' -v IGNORECASE=1 '{if($1!~/^[0-9.]+[smhd]?$/) exit 1;d=$1~/s$|^[0-9.]*$/?1:$1~/m$/?60:$1~/h$/?60*60:$1~/d$/?24*60*60:-1;if(d==-1) exit 1;delay+=d*$1} END {printf("%d",delay+0.5)}')
+ if [ "$?" -eq 1 ]; then
+ echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
+ return 1
+ fi
shift 2
fi