|
|
- #!/bin/sh /etc/rc.common
-
- START=99
- USE_PROCD=1
-
- BOINCEXE_NAME=boinc_client
- BOINCDIR=/opt/boinc/
- PRESETDIR=/usr/share/boinc
- BOINCUSR=boinc
- BOINCEXE_OPTS="--check_all_logins --redirectio --dir $BOINCDIR"
- PID_FILE="/var/run/$BOINCEXE_NAME.pid"
-
- start_service() {
- # First check that BOINCDIR exists
- if ! [ -d "$BOINCDIR" ]; then
- if ! mkdir -p $BOINCDIR 2>/dev/null ; then
- echo "ERROR: $BOINCDIR doesn't exist and couldn't be created"
- return 1
- fi
- fi
-
- # adjust some presettings if necessary
- for f in global_prefs_override.xml remote_hosts.cfg; do
- if ! [ -f $BOINCDIR/$f ]; then
- cp $PRESETDIR/$f $BOINCDIR
- fi
- done
-
- # and ensure it is accessible by boinc
- BOINCDIR_OWNER="$(ls -ld $BOINCDIR | awk '{print $3}')"
- if [ "$BOINCUSR" != "$BOINCDIR_OWNER" ] ; then
- chown -R $BOINCUSR:$BOINCUSR $BOINCDIR
- BOINCDIR_OWNER="$(ls -ld $BOINCDIR | awk '{print $3}')"
-
- if [ "$BOINCUSR" != "$BOINCDIR_OWNER" ] ; then
- echo "User boinc can't access $BOINC_DIR"
- return 3
- fi
- fi
-
- # now use procd to start boinc
- procd_open_instance $BOINCEXE_NAME
-
- procd_set_param command $BOINCEXE_NAME
- procd_append_param command $BOINCEXE_OPTS
- procd_set_param user $BOINCUSR
- procd_set_param limits core="unlimited"
- procd_set_param stdout 1
- procd_set_param stderr 1
- procd_set_param pidfile $PID_FILE
-
- procd_close_instance
- }
|