bash:使此脚本允许执行php解析器

bash:使此脚本允许执行php解析器,php,bash,shell,Php,Bash,Shell,目前,我使用以下脚本启动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/pars

目前,我使用以下脚本启动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
这将运行服务器并在$parser中应用php脚本

但是,我希望按如下方式启动服务器:

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


这里唯一的问题是我不知道如何指定要在服务器上运行的php解析器(im a noob)。我将如何修改第二个脚本以允许这样做

将所有代码放在srv脚本中while循环的第一个块中,即

srv:

(这看起来对吗?)


我希望这有帮助。

您可以通过运行“php-f/path/to/file.php”@fin1te调用php来运行文件。这是在srv脚本中完成的,还是在screen-dmS脚本中完成的?php脚本如何知道会影响正在运行的服务器,而不是像shell这样的其他东西?您是否使用screen来保持服务器运行,即使您从会话连接注销?如果是,请尝试
mancrontab
。祝你好运。@KevInduke:嗯,我不清楚为什么你称之为服务器的东西正在读取尾部-0n-f。。。ladderLog的输出。无论如何,为什么不能将所有代码放在srv脚本中while循环的第一个块中?
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
#!/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