bash: сделать этот скрипт разрешающим выполнение php-парсера - PullRequest
0 голосов
/ 18 мая 2011

В настоящее время я запускаю сервер Armagetron со следующим скриптом

#!/bin/sh

tron="/home/duke/aa/bin/armagetronad-dedicated"
var="/home/duke/aa/servers/demo/var/"
log="${var}console_log.txt"
userconfigdir="/home/duke/aa/servers/demo/var/customize/config/"
parser="/home/duke/aa/scripts/parser.php"
ladderlog="${var}ladderlog.txt"
cmds="${var}cmd.txt"

tail -n0 -f -s 0.01 $ladderlog | $parser | $tron --userconfigdir $userconfigdir --vardir $var | tee -a $log

Запускает сервер и применяет скрипт php в $ parser

Однако я хочу запустить свой сервер так:

#!/bin/bash
    screen -S $1 -X quit    # avoiding to run the same server twice
screen -dmS $1 /home/duke/aa/scripts/srv $1     

SRV:

screen -S $1 -X logtstamp on 
screen -S $1 -X logfile /home/duke/aa/servers/$1/logs
screen -S $1 -X log on 
while true; do  # start a loop to allow server restart if it crashes
/home/duke/aa/bin/armagetronad-dedicated --vardir /home/duke/aa/servers/$1/var  --userdatadir /home/duke/aa/servers/$1/var/customize #run the server    

    echo "###Server has crashed. Ctrl-C to cancel reboot...###"
    sleep 5

done # end the loop

Единственная проблема здесь в том, что я не знаю, как указать парсер php для запуска на сервере (я нуб) Как бы я изменил вторые сценарии, чтобы позволить это?

1 Ответ

1 голос
/ 19 мая 2011

поместите весь код в вашем первом блоке внутри цикла while в скрипте srv, т.е.

SRV:

#!/bin/bash
tron="/home/duke/aa/bin/armagetronad-dedicated"
var="/home/duke/aa/servers/demo/var/"
log="${var}console_log.txt"
userconfigdir="/home/duke/aa/servers/demo/var/customize/config/"
parser="/home/duke/aa/scripts/parser.php"
ladderlog="${var}ladderlog.txt"
cmds="${var}cmd.txt"


screen -S $1 -X logtstamp on 
screen -S $1 -X logfile /home/duke/aa/servers/$1/logs
screen -S $1 -X log on 
while true; do  # start a loop to allow server restart if it crashes
    tail -n0 -f -s 0.01 $ladderlog | $parser | $tron --userconfigdir $userconfigdir --vardir $var | tee -a $log
    # /home/duke/aa/bin/armagetronad-dedicated --vardir /home/duke/aa/servers/$1/var  --userdatadir /home/duke/aa/servers/$1/var/customize #run the server  

    echo "###Server has crashed. Ctrl-C to cancel reboot...###"
    sleep 5

done # end the loop

(Это выглядит правильно?)

Надеюсь, это поможет.

...