pulseaudio 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/bin/sh -e
  2. ### BEGIN INIT INFO
  3. # Provides: pulseaudio esound
  4. # Required-Start: $remote_fs $syslog
  5. # Required-Stop: $remote_fs $syslog
  6. # Should-Start: avahi udev NetworkManager
  7. # Should-Stop: avahi udev NetworkManager
  8. # Default-Start: 2 3 4 5
  9. # Default-Stop: 0 1 6
  10. # Short-Description: Start the PulseAudio sound server
  11. # Description: System mode startup script for
  12. # the PulseAudio sound server.
  13. ### END INIT INFO
  14. DAEMON=/usr/bin/pulseaudio
  15. PIDDIR=/var/run/pulse
  16. PIDFILE=$PIDDIR/pid
  17. DAEMONUSER=pulse
  18. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  19. test -x $DAEMON || exit 0
  20. . /lib/lsb/init-functions
  21. PULSEAUDIO_SYSTEM_START=0
  22. DISALLOW_MODULE_LOADING=1
  23. test -f /etc/default/pulseaudio && . /etc/default/pulseaudio
  24. if [ "$PULSEAUDIO_SYSTEM_START" != "1" ]; then
  25. exit 0
  26. fi
  27. pulseaudio_start () {
  28. log_daemon_msg "Starting system PulseAudio Daemon"
  29. if [ ! -d $PIDDIR ]; then
  30. mkdir -p $PIDDIR
  31. chown $DAEMONUSER:$DAEMONUSER $PIDDIR
  32. fi
  33. start-stop-daemon -x $DAEMON -p $PIDFILE --start -- --system --disallow-exit --disallow-module-loading=$DISALLOW_MODULE_LOADING --daemonize --log-target=syslog --high-priority
  34. status=$?
  35. if [ -e /var/run/pulse/.esd_auth ]; then
  36. chown pulse:pulse-access /var/run/pulse/.esd_auth
  37. chmod 640 /var/run/pulse/.esd_auth
  38. fi
  39. if [ -e /var/run/pulse/.pulse-cookie ]; then
  40. chown pulse:pulse-access /var/run/pulse/.pulse-cookie
  41. chmod 640 /var/run/pulse/.pulse-cookie
  42. fi
  43. log_end_msg ${status}
  44. }
  45. pulseaudio_stop () {
  46. log_daemon_msg "Stopping system PulseAudio Daemon"
  47. start-stop-daemon -p $PIDFILE --stop --retry 5 || echo -n "...which is not running"
  48. log_end_msg $?
  49. }
  50. case "$1" in
  51. start|stop)
  52. pulseaudio_${1}
  53. ;;
  54. restart|force-reload)
  55. if [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1; then
  56. pulseaudio_stop
  57. pulseaudio_start
  58. fi
  59. ;;
  60. force-stop)
  61. pulseaudio_stop
  62. killall pulseaudio || true
  63. sleep 2
  64. killall -9 pulseaudio || true
  65. ;;
  66. status)
  67. status_of_proc -p $PIDFILE "$DAEMON" "system-wide PulseAudio" && exit 0 || exit $?
  68. ;;
  69. *)
  70. echo "Usage: /etc/init.d/pulseaudio {start|stop|force-stop|restart|force-reload|status}"
  71. exit 1
  72. ;;
  73. esac
  74. exit 0