Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
aa608258
Commit
aa608258
authored
Jul 01, 2015
by
Marek Biskup
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kill child processes of addon-update on stop
parent
b33954c4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
16 deletions
+45
-16
initd
cluster/saltbase/salt/kube-addons/initd
+40
-15
kube-addon-update.sh
cluster/saltbase/salt/kube-addons/kube-addon-update.sh
+5
-1
No files found.
cluster/saltbase/salt/kube-addons/initd
View file @
aa608258
...
...
@@ -16,9 +16,9 @@
PATH
=
/sbin:/usr/sbin:/bin:/usr/bin
DESC
=
"Kubernetes Addon Object Manager"
NAME
=
kube-addons
DAEMON_LOG_FILE
=
/var/log/
$
NAME
.log
PIDFILE
=
/var/run/
$
NAME
.pid
SCRIPTNAME
=
/etc/init.d/
$
NAME
DAEMON_LOG_FILE
=
/var/log/
$
{
NAME
}
.log
PIDFILE
=
/var/run/
$
{
NAME
}
.pid
SCRIPTNAME
=
/etc/init.d/
$
{
NAME
}
KUBE_ADDONS_SH
=
/etc/kubernetes/kube-addons.sh
# Define LSB log_* functions.
...
...
@@ -34,9 +34,10 @@ KUBE_ADDONS_SH=/etc/kubernetes/kube-addons.sh
#
do_start
()
{
${
KUBE_ADDONS_SH
}
</dev/null
>>
${
DAEMON_LOG_FILE
}
2>&1 &
echo
$!
>
${
PIDFILE
}
disown
# use setsid to make sure the new daemon has its own group (I suppose
# start-stop-daemon does create a process group, but let's stay on the
# safe side).
setsid start-stop-daemon
--start
--verbose
--background
--no-close
--make-pidfile
--pidfile
"
${
PIDFILE
}
"
--startas
"
${
KUBE_ADDONS_SH
}
"
</dev/null
>>
${
DAEMON_LOG_FILE
}
2>&1
}
#
...
...
@@ -44,14 +45,38 @@ do_start()
#
do_stop
()
{
kill
$(
cat
${
PIDFILE
})
rm
${
PIDFILE
}
# start-stop-daemon is not used because we have to stop all children
# limitations:
# - stop does not work if the pid file is missing
# - stop does not work if the daemon process is missing (children will not
# be killed)
# This is sufficient - remaining processes will end after a while.
local
pid
pid
=
$(
cat
"
${
PIDFILE
}
"
2> /dev/null
)
if
[[
$?
!=
0
]]
;
then
return
1
fi
local
pgrp
# find the process group for the service and kill entire group
# o - output format: pgpg - process group
pgrp
=
$(
ps
--no-headers
--pid
"
${
pid
}
"
-o
pgrp 2>/dev/null
)
if
[[
$?
!=
0
]]
||
[[
"
${
pgrp
}
"
==
""
]]
;
then
return
1
fi
pgrp
=
$(
echo
-e
${
pgrp
})
# strip whitespaces (that's why there are no quotes around pgrp)
# negative pid is for killing entire group
kill
--
-
${
pgrp
}
2> /dev/null
if
[[
$?
!=
0
]]
;
then
return
2
fi
rm
-f
"
${
PIDFILE
}
"
return
}
case
"
$1
"
in
start
)
log_daemon_msg
"Starting
$
DESC
"
"
$NAME
"
log_daemon_msg
"Starting
$
{
DESC
}
"
"
${
NAME
}
"
do_start
case
"
$?
"
in
0|1
)
log_end_msg 0
||
exit
0
;;
...
...
@@ -59,19 +84,19 @@ case "$1" in
esac
;;
stop
)
log_daemon_msg
"Stopping
$
DESC
"
"
$NAME
"
log_daemon_msg
"Stopping
$
{
DESC
}
"
"
${
NAME
}
"
do_stop
case
"
$?
"
in
0|1
)
log_end_msg 0
;;
2
)
exit
1
;;
0|1
)
log_end_msg 0
||
exit
0
;;
2
)
log_end_msg 1
||
exit
1
;;
esac
;;
status
)
status_of_proc
-p
$PIDFILE
$KUBE_ADDONS_SH
$NAME
status_of_proc
-p
"
${
PIDFILE
}
"
"
${
KUBE_ADDONS_SH
}
"
"
${
NAME
}
"
;;
restart|force-reload
)
log_daemon_msg
"Restarting
$
DESC
"
"
$NAME
"
log_daemon_msg
"Restarting
$
{
DESC
}
"
"
${
NAME
}
"
do_stop
case
"
$?
"
in
0|1
)
...
...
@@ -89,7 +114,7 @@ case "$1" in
esac
;;
*
)
echo
"Usage:
$
SCRIPTNAME
{start|stop|status|restart|force-reload}"
>
&2
echo
"Usage:
$
{
SCRIPTNAME
}
{start|stop|status|restart|force-reload}"
>
&2
exit
3
;;
esac
cluster/saltbase/salt/kube-addons/kube-addon-update.sh
View file @
aa608258
...
...
@@ -162,7 +162,11 @@ function wait-for-jobs() {
local
rv
=
0
local
pid
for
pid
in
$(
jobs
-p
)
;
do
wait
${
pid
}
||
(
rv
=
1
;
log ERR
"error in pid
${
pid
}
"
)
wait
${
pid
}
if
[[
$?
-ne
0
]]
;
then
rv
=
1
;
log ERR
"error in pid
${
pid
}
"
fi
log DB2
"pid
${
pid
}
completed, current error code:
${
rv
}
"
done
return
${
rv
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment