Created
October 12, 2014 11:39
-
-
Save dasgoll/5c338e0576925c52c0ad to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# /etc/rc.d/init.d/docker | |
# | |
# Daemon for docker.com | |
# | |
# chkconfig: 2345 95 95 | |
# description: Daemon for docker.com | |
### BEGIN INIT INFO | |
# Provides: docker | |
# Required-Start: $network cgconfig | |
# Required-Stop: | |
# Should-Start: | |
# Should-Stop: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: start and stop docker | |
# Description: Daemon for docker.com | |
### END INIT INFO | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
prog="docker" | |
exec="/usr/local/bin/$prog" | |
pidfile="/var/run/$prog.pid" | |
lockfile="/var/lock/subsys/$prog" | |
logfile="/var/log/$prog" | |
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog | |
prestart() { | |
service cgconfig status > /dev/null | |
if [[ $? != 0 ]]; then | |
service cgconfig start | |
fi | |
} | |
start() { | |
[ -x $exec ] || exit 5 | |
if ! [ -f $pidfile ]; then | |
prestart | |
printf "Starting $prog:\t" | |
echo "\n$(date)\n" >> $logfile | |
$exec -d $other_args &>> $logfile & | |
pid=$! | |
touch $lockfile | |
# wait up to 10 seconds for the pidfile to exist. see | |
# https://github.com/docker/docker/issues/5359 | |
tries=0 | |
while [ ! -f $pidfile -a $tries -lt 10 ]; do | |
sleep 1 | |
tries=$((tries + 1)) | |
done | |
success | |
echo | |
else | |
failure | |
echo | |
printf "$pidfile still exists...\n" | |
exit 7 | |
fi | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
killproc -p $pidfile -d 300 $prog | |
retval=$? | |
echo | |
[ $retval -eq 0 ] && rm -f $lockfile | |
return $retval | |
} | |
restart() { | |
stop | |
start | |
} | |
reload() { | |
restart | |
} | |
force_reload() { | |
restart | |
} | |
rh_status() { | |
status -p $pidfile $prog | |
} | |
rh_status_q() { | |
rh_status >/dev/null 2>&1 | |
} | |
case "$1" in | |
start) | |
rh_status_q && exit 0 | |
$1 | |
;; | |
stop) | |
rh_status_q || exit 0 | |
$1 | |
;; | |
restart) | |
$1 | |
;; | |
reload) | |
rh_status_q || exit 7 | |
$1 | |
;; | |
force-reload) | |
force_reload | |
;; | |
status) | |
rh_status | |
;; | |
condrestart|try-restart) | |
rh_status_q || exit 0 | |
restart | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | |
exit 2 | |
esac | |
exit $? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment