diff options
Diffstat (limited to 'x11/gdm/files/gdm.in')
-rw-r--r-- | x11/gdm/files/gdm.in | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/x11/gdm/files/gdm.in b/x11/gdm/files/gdm.in new file mode 100644 index 000000000..63bf40a4b --- /dev/null +++ b/x11/gdm/files/gdm.in @@ -0,0 +1,62 @@ +#!/bin/sh +# $FreeBSD: ports/x11/gdm/files/gdm.in,v 1.19 2010/05/10 21:18:50 kwm Exp $ +# $MCom: ports/x11/gdm/files/gdm.in,v 1.43 2010/04/17 19:06:00 marcus Exp $ + +# PROVIDE: gdm +# REQUIRE: LOGIN cleanvar moused syscons dbus +# +# Add the following to /etc/rc.conf to start GDM at boot time: +# +# gdm_enable="YES" +# + +. /etc/rc.subr +. %%GNOME_SUBR%% + +gdm_enable=${gdm_enable-${gnome_enable}} +gdm_preserve_base_pam_conf=${gdm_preserve_base_pam_conf-NO} +gdm_lang=${gdm_lang-${LANG}} + +export PATH=/bin:/sbin:/usr/bin:/usr/sbin:%%LOCALBASE%%/bin:%%LOCALBASE%%/sbin + +name="gdm" +rcvar=`set_rcvar` +command="%%PREFIX%%/sbin/${name}" +pidfile="/var/run/${name}.pid" +procname="%%PREFIX%%/sbin/gdm-binary" +start_cmd="gdm_start" + +gdm_start() +{ + if ! checkyesno gdm_enable ; then + return 0 + fi + echo "Starting ${name}." + + # make sure there is no pam configuration for gdm service in base system + if ! checkyesno gdm_preserve_base_pam_conf && [ -f /etc/pam.d/gdm ]; then + cp -p /etc/pam.d/gdm /etc/pam.d/gdm_disabled + rm -f /etc/pam.d/gdm + fi + + ( iter=0 + while ! ps -axoargs | grep "^/usr/libexec/getty " | grep -qv grep >/dev/null 2>&1; do + if [ ${iter} -eq 60 ]; then + break + fi + sleep 1 + iter=$(expr ${iter} + 1) + done + iter=0 + while ! %%LOCALBASE%%/bin/lshal >/dev/null 2>&1 ; do + if [ ${iter} -eq 60 ]; then + break + fi + sleep 1 + iter=$(expr ${iter} + 1) + done + LANG=${gdm_lang} ${command} ${gdm_flags} ) & +} + +load_rc_config ${name} +run_rc_command "$1" |