Advertisement
Guest User

Untitled

a guest
Jul 25th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides: mpd
  5. # Required-Start: $local_fs $remote_fs
  6. # Required-Stop: $local_fs $remote_fs
  7. # Should-Start: autofs $network $named alsa-utils pulseaudio
  8. # Should-Stop: autofs $network $named alsa-utils pulseaudio
  9. # Default-Start: 2 3 4 5
  10. # Default-Stop: 0 1 6
  11. # Short-Description: Music Player Daemon
  12. # Description: Start the Music Player Daemon (MPD) service
  13. # for network access to the local audio queue.
  14. ### END INIT INFO
  15.  
  16. . /lib/lsb/init-functions
  17.  
  18. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  19. NAME=mpd
  20. DESC="Music Player Daemon"
  21. DAEMON=/usr/bin/mpd
  22. MPDCONF=/etc/mpd.conf
  23. START_MPD=true
  24.  
  25. # Exit if the package is not installed
  26. [ -x "$DAEMON" ] || exit 0
  27.  
  28. # Read configuration variable file if it is present
  29. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  30.  
  31. if [ -n "$MPD_DEBUG" ]; then
  32. set -x
  33. MPD_OPTS=--verbose
  34. fi
  35.  
  36. if [ ! -d "/var/run/mpd" ]; then
  37. mkdir /var/run/mpd
  38. if dpkg-statoverride --list --quiet /var/run/mpd > /dev/null; then
  39. #if dpkg-statoverride is used update it with permissions there
  40. dpkg-statoverride --force --quiet --update --add $( dpkg-statoverride --list --quiet /var/run/mpd ) 2> /dev/null
  41. else
  42. #use defaults
  43. chown mpd:audio /var/run/mpd
  44. chmod 755 /var/run/mpd
  45. fi
  46. fi
  47.  
  48. DBFILE=$(sed -n 's/^[[:space:]]*db_file[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $MPDCONF)
  49. PIDFILE=$(sed -n 's/^[[:space:]]*pid_file[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $MPDCONF)
  50.  
  51. mpd_start () {
  52. if [ "$START_MPD" != "true" ]; then
  53. log_action_msg "Not starting MPD: disabled by /etc/default/$NAME".
  54. exit 0
  55. fi
  56.  
  57. log_daemon_msg "Starting $DESC" "$NAME"
  58.  
  59. if [ -z "$PIDFILE" -o -z "$DBFILE" ]; then
  60. log_failure_msg \
  61. "$MPDCONF must have db_file and pid_file set; cannot start daemon."
  62. exit 1
  63. fi
  64.  
  65. PIDDIR=$(dirname "$PIDFILE")
  66. if [ ! -d "$PIDDIR" ]; then
  67. mkdir -m 0755 $PIDDIR
  68. chown mpd:audio $PIDDIR
  69. fi
  70.  
  71. start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" \
  72. --exec "$DAEMON" -- $MPD_OPTS "$MPDCONF"
  73. log_end_msg $?
  74. }
  75.  
  76. mpd_stop () {
  77. if [ "$START_MPD" != "true" ]; then
  78. log_failure_msg "Not stopping MPD: disabled by /etc/default/$NAME".
  79. exit 0
  80. fi
  81. if [ -z "$PIDFILE" ]; then
  82. log_failure_msg \
  83. "$MPDCONF must have pid_file set; cannot stop daemon."
  84. exit 1
  85. fi
  86.  
  87. log_daemon_msg "Stopping $DESC" "$NAME"
  88. start-stop-daemon --stop --quiet --oknodo --retry 5 --pidfile "$PIDFILE" \
  89. --exec $DAEMON
  90. log_end_msg $?
  91. }
  92.  
  93. # note to self: don't call the non-standard args for this in
  94. # {post,pre}{inst,rm} scripts since users are not forced to upgrade
  95. # /etc/init.d/mpd when mpd is updated
  96. case "$1" in
  97. start)
  98. mpd_start
  99. ;;
  100. stop)
  101. mpd_stop
  102. ;;
  103. status)
  104. status_of_proc -p $PIDFILE $DAEMON $NAME
  105. ;;
  106. restart|force-reload)
  107. mpd_stop
  108. mpd_start
  109. ;;
  110. force-start)
  111. mpd_start
  112. ;;
  113. force-restart)
  114. mpd_stop
  115. mpd_start
  116. ;;
  117. force-reload)
  118. mpd_stop
  119. mpd_start
  120. ;;
  121. *)
  122. echo "Usage: $0 {start|start-create-db|stop|restart|force-reload}"
  123. exit 2
  124. ;;
  125. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement