# Source function library
. /etc/rc.d/init.d/functions
+BINFMT_DIR='/proc/sys/fs/binfmt_misc'
+
case "$1" in
start)
- _modprobe single binfmt_misc
- msg_starting "Setting Wine configuration"
- echo ':windows:M::MZ::/usr/X11R6/bin/wine:' >/proc/sys/fs/binfmt_misc/register
- echo ':windowsPE:M::PE::/usr/X11R6/bin/wine:' >/proc/sys/fs/binfmt_misc/register
- deltext
- ok
- ;;
+ if [ -f /var/lock/subsys/wine ]; then
+ msg_already_running "Wine"
+ else
+ # check if binfmt_misc is not already mounted
+ if ! /bin/mount | grep -q "${BINFMT_DIR} type binfmt_misc"; then
+ /bin/mount none -t binfmt_misc /proc/sys/fs/binfmt_misc
+ fi
+ msg_starting "Wine"
+ echo ':windows:M::MZ::/usr/X11R6/bin/wine:' > ${BINFMT_DIR}/register
+ echo ':windowsPE:M::PE::/usr/X11R6/bin/wine:' > ${BINFMT_DIR}/register
+ deltext
+ ok
+ fi
+ touch /var/lock/subsys/wine
+ ;;
stop)
- msg_stopping "Wine"
- echo "-1" >/proc/sys/fs/binfmt_misc/windows
- echo "-1" >/proc/sys/fs/binfmt_misc/windowsPE
- ;;
+ if [ ! -f /var/lock/subsys/wine ]; then
+ msg_not_running "Wine"
+ exit 0
+ fi
+ msg_stopping "Wine"
+ echo "-1" > ${BINFMT_DIR}/windows
+ echo "-1" > ${BINFMT_DIR}/windowsPE
+ rm -f /var/lock/subsys/wine
+ deltext
+ ok
+ ;;
*)
- echo "Usage: $0 {start|stop}"
+ echo "Usage: $0 {start|stop}"
esac