Frage

Ich habe dieses Skript, das ich zum Benutzer "Terraria" wechseln möchte, bevor ich den Daemon starte. Ich kann nicht herausfinden, wie es geht. Meine Forschung bringt mich dazu, Skripte mithilfe zu verprügeln su my_user -c, aber ich glaube nicht, dass das in diesem Fall funktioniert.

#!/bin/bash
# Terraria daemon
# chkconfig: 345 20 80
# description: Terraria Server
# processname: TerrariaServer.exe

DAEMON_PATH="/usr/Terraria"

DAEMON=TerrariaServer.exe
DAEMONOPTS="-world This_Land.wld -port 7777 "

NAME=TerrariaServer
DESC="Terraria Server"
PIDFILE=/var/run/TerrariaServer.pid
SCRIPTNAME=/etc/init.d/Terraria-Server

case "$1" in
start)
    printf "%-50s" "Starting $NAME..."
    cd $DAEMON_PATH
    PID=`mono $DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!`
    #echo "Saving PID" $PID " to " $PIDFILE
        if [ -z $PID ]; then
            printf "%s\n" "Fail"
        else
            echo $PID > $PIDFILE
            printf "%s\n" "Ok"
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
                printf "%s\n" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%s\n" "Service not running"
        fi
;;
stop)
        printf "%-50s" "Stopping $NAME"
            PID=`cat $PIDFILE`
            cd $DAEMON_PATH
        if [ -f $PIDFILE ]; then
            kill -HUP $PID
            printf "%s\n" "Ok"
            rm -f $PIDFILE
        else
            printf "%s\n" "pidfile not found"
        fi
;;

restart)
    $0 stop
    $0 start
;;

*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac
War es hilfreich?

Lösung

Schauen Sie sich den folgenden Link für die "DJB" -May zum Starten von Prozessen als andere Benutzer an:http://thedjbway.b0llix.net/daemontools/uidgid.html

Siehe auch:Wie führe ich einen Befehl als spezifischer Benutzer in einem Init -Skript aus?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top