|  | #!/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/init.d/functions | 
|  |  | 
|  | prog="docker" | 
|  | unshare=/usr/bin/unshare | 
|  | exec="/usr/bin/$prog" | 
|  | pidfile="/var/run/$prog.pid" | 
|  | lockfile="/var/lock/subsys/$prog" | 
|  | logfile="/var/log/$prog" | 
|  |  | 
|  | [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog | 
|  |  | 
|  | start() { | 
|  | [ -x $exec ] || exit 5 | 
|  |  | 
|  | check_for_cleanup | 
|  |  | 
|  | if ! [ -f $pidfile ]; then | 
|  | printf "Starting $prog:\t" | 
|  | echo "\n$(date)\n" >> $logfile | 
|  | "$unshare" -m -- $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 $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 | 
|  | } | 
|  |  | 
|  |  | 
|  | check_for_cleanup() { | 
|  | if [ -f ${pidfile} ]; then | 
|  | /bin/ps -fp $(cat ${pidfile}) > /dev/null || rm ${pidfile} | 
|  | fi | 
|  | } | 
|  |  | 
|  | case "$1" in | 
|  | start) | 
|  | $1 | 
|  | ;; | 
|  | stop) | 
|  | $1 | 
|  | ;; | 
|  | restart) | 
|  | $1 | 
|  | ;; | 
|  | reload) | 
|  | $1 | 
|  | ;; | 
|  | force-reload) | 
|  | force_reload | 
|  | ;; | 
|  | status) | 
|  | status | 
|  | ;; | 
|  | condrestart|try-restart) | 
|  | restart | 
|  | ;; | 
|  | *) | 
|  | echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | 
|  | exit 2 | 
|  | esac | 
|  |  | 
|  | exit $? |