/rc4.d/S20gpm
http://github.com/brinkman83/bashrc · Shell · 101 lines · 68 code · 12 blank · 21 comment · 21 complexity · 26fbbba2ebe3cca196be277b003d318f MD5 · raw file
- #!/bin/sh
- #
- ### BEGIN INIT INFO
- # Provides: gpm
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Should-Start:
- # Should-Stop:
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: gpm sysv init script
- # Description: general purpose mouse event server
- ### END INIT INFO
- #
- PIDFILE=/var/run/gpm.pid
- GPM=/usr/sbin/gpm
- CFG=/etc/gpm.conf
- test -x $GPM || exit 0
- . /lib/lsb/init-functions
- if [ "$(id -u)" != "0" ]
- then
- log_failure_msg "You must be root to start, stop or restart gpm."
- exit 1
- fi
- cmdln=
- niceness=0
- if [ -f $CFG ]; then
- . $CFG
- if [ -n "$device" ]; then cmdln="$cmdln -m $device"; fi
- if [ -n "$type" ]; then cmdln="$cmdln -t $type"; fi
- if [ -n "$responsiveness" ]; then cmdln="$cmdln -r $responsiveness"; fi
- if [ -n "$sample_rate" ]; then cmdln="$cmdln -s $sample_rate"; fi
- # Yes, this /IS/ correct! There is no space after -R!!!!!!
- # I reserve the right to throw manpages at anyone who disagrees.
- if [ -n "$repeat_type" ] && [ "$repeat_type" != "none" ]; then
- cmdln="$cmdln -R$repeat_type"
- fi
- if [ -n "$append" ]; then cmdln="$cmdln $append"; fi
- # If both the second device and type are specified, use it.
- if [ -n "$device2" ] && [ -n "$type2" ] ; then
- cmdln="$cmdln -M -m $device2 -t $type2"
- fi
- fi
- gpm_strace () {
- log_daemon_msg "Running mouse interface server under strace" "gpm"
- eval strace -T -o /root/gpm.strace $GPM -V -D -e $cmdln > /root/gpm.out 2>&1
- log_end_msg $?
- return $?
- }
- gpm_start () {
- log_daemon_msg "Starting mouse interface server" "gpm"
- # HACK - kernel module init is asynchronous in kernel 2.6, EVEN FROM
- # REQUEST_MODULE(). That would include 'mousedev'. The correct
- # solution is a hotplug script, but we cannot depend on hotplug being
- # available just yet, either kernel-side or user-side.
- for foo in 1 2 3; do
- if :< ${device-/dev/mouse}; then break; fi
- sleep 1
- done
- eval start-stop-daemon --start --quiet --nicelevel $niceness --exec $GPM \
- -- $cmdln
- log_end_msg $?
- return $?
- }
- gpm_stop () {
- log_daemon_msg "Stopping mouse interface server" "gpm"
- $GPM -k
- log_end_msg $?
- return $?
- }
- case "$1" in
- strace)
- gpm_strace || exit 1
- ;;
- start)
- gpm_start || exit 1
- ;;
- stop)
- gpm_stop || exit 1
- ;;
- force-reload|restart)
- gpm_stop && sleep 3
- gpm_start || exit 1
- ;;
- *)
- echo "Usage: /etc/init.d/gpm {start|stop|restart|force-reload|strace}"
- exit 1
- esac
- exit 0