# Wie kann ich ein StartScript machen ?

## Blackburns_gentoo

Hi Leute,

seit einiger Zeit Bastle ich an einem Armerica's Army server, der nun mehr mittlerweile Super Läuft. allerdings ist der eine Ausführbare datei die im Game verzeichniss liegt und siche nur immer manuel starten lässt. eigentlich möchte ich ein einfaches Script wie bei Teamspeak das einfach in /etc/init.d :

Bei "Start " 

-> Als Benutzer "army" 

in -> (cd) /home/army/armyops280/System[/n]

folgende datei mit option :  "[b]./server-bin GLOBAL Border.aao -nohomedir -ini=server.ini -port=1716 -multihome=218.162.251.47"

Starten

und bei "stop" 

Soll er einfach die anwendung Killen

 Eventuell bei "restart"

Killen und selbe nochmals starten

Wie lässt sich das einfach realisieren  vor allem auch so das es mit RC-Update gestartet werden kann.

Grüsse

Black

----------

## Blackburns_gentoo

hab was  hingekriegt mit bateln :

allerdings startet er dies immer als Root  und ich möchte das der User "army" dies startet 

* Vielleicht kann jemand das nochmals angucken und mir bei fehler korrektur helfen.

```
#! /bin/bash

#

# /etc/init.d/aao

#

### BEGIN INIT INFO

# Provides: aao      

# Required-Start: $network 

# Required-Stop:

# Default-Start:  3 5

# Default-Stop: 0 1 6

# Description:   AAO-Server 

### END INIT INFO

server_path=/home/army/armyops280/System/

config_path=/home/army/armyops280/System/

server_bin=server-bin

#ArmyOps_ini=/home/armyops/System/ArmyOps.ini

ArmyOps_ini=server.ini

ArmyOps_map=/home/armyops/System/ArmyOps.map

ArmyOps_log1=logs/

ArmyOps_log2=/home/Army/armyops280/System/logs/ArmyOps.log

PID=`ps xua | grep -e $server_bin | grep -v grep | sed -e 's/[^ ]* *\([0-9]*\).*/\1/g'`

export LD_PRELOAD=$server_path/pjpatch.so

case "$1" in

    start)

   if [ "$PID" == "" ] ; then

           echo -n "Starting AAO Server"

      cd $server_path

       screen -dmS army ./server-bin GLOBAL Border.aao -nohomedir -ini=server.ini -port=1716 -multihome=217.162.251.47

                #./$server_bin global border.aao -nohomedir -INI=$server.ini -multihome=217.162.251.47

      #./$server_bin global `cat $ArmyOps_map` -INI=$ArmyOps_ini -LOG=$ArmyOps_log1 > $ArmyOps_log2 &

      #./$server_bin global `cat $ArmyOps_map` -nohomedir -INI=$ArmyOps_ini -LOG=$ArmyOps_log1 > $ArmyOps_log2 &

   else

      echo -n "AAO Server is already running"

   fi

        ;;

    stop)

   if [ "$PID" != "" ] ; then

           echo -n "Stopping AAO Server"

           kill -s TERM $PID

   else

           echo -n "AAO Server is not running"

   fi

   ;;

    restart)

   echo "Restarting AAO Server"

   $0 stop && sleep 10s && $0 start || return=$rc_failed

   ;;

    status)

   echo -n "Checking for AAO Server:"

   /sbin/checkproc $server_bin

   ;;

    *)

   echo "Usage: $0 {start|stop|restart|status}"

   exit 1

esac

exit 0
```

Bitte nicht lachen ich hab das ding aus ner vorlage aus 2003 und  muste einiges schrauben das überhaupt geht ..

Grüsse

Black

----------

## Finswimmer

su $USER -c "$command" sollte dir da helfen.

Tobi

----------

## Blackburns_gentoo

 *Finswimmer wrote:*   

> su $USER -c "$command" sollte dir da helfen.
> 
> Tobi

 

okey nur wo muss das hin ? 

Grüsse

Black

----------

## Evildad

```
screen -dmS army ./server-bin GLOBAL Border.aao -nohomedir -ini=server.ini -port=1716 -multihome=217.162.251.47 
```

Teste mal das hier:

```
su army -c "screen -dmS army ./server-bin GLOBAL Border.aao -nohomedir -ini=server.ini -port=1716 -multihome=217.162.251.47"
```

----------

## Blackburns_gentoo

```
Gabriel ~ # /etc/init.d/aao start

Starting AAO ServerCannot open your terminal '/dev/pts/2' - please check. 
```

 hm , was ist damit gemeint ?  - das kommt nun mit deinen änderunngen.

Grüsse

Black

----------

## Evildad

Führ meinen Befehl mal in der Konsole aus. 

Die ganzen Variablen musst Du dann aber anpassen.

Also erst zum User army wechseln dann den screen aufmachen und dort den eigentlichen Server-Start Befehl absetzen.

----------

