123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #!/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"
- unshare=/usr/bin/unshare
- exec="/usr/bin/dockerd"
- 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() {
- if [ ! -x $exec ]; then
- if [ ! -e $exec ]; then
- echo "Docker executable $exec not found"
- else
- echo "You do not have permission to execute the Docker executable $exec"
- fi
- exit 5
- fi
- check_for_cleanup
- if ! [ -f $pidfile ]; then
- prestart
- printf "Starting $prog:\t"
- echo "\n$(date)\n" >> $logfile
- "$unshare" -m -- $exec $other_args >> $logfile 2>&1 &
- 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))
- echo -n '.'
- done
- if [ ! -f $pidfile ]; then
- failure
- echo
- exit 1
- fi
- 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
- }
- check_for_cleanup() {
- if [ -f ${pidfile} ]; then
- /bin/ps -fp $(cat ${pidfile}) > /dev/null || rm ${pidfile}
- fi
- }
- 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 $?
|