не может выполнить «что-нибудь»: нет такого файла или экрана каталога

Я использую игровые серверы Call of Duty с экраном.

У меня есть start.sh:

#!/bin/bash

user=cabe
game=cod
verision=cod1.5
server=xxx.xx.xxx:28970
mod=
ip=xxx.xx.xxx
port=28970
punkbuster=1
slots=20


# Don't Change This
. /mnt/utilities/files/games/cod/1.5/files/extra/scripts/startup/cod/start_cod

, и он связан с этим

cd /home/$user/$game/$verision/$server ./stop.sh screen -A -m -d -S $port /home/$user/$game/$verision/$server/cod_lnxded +set net_ip $ip
+set net_port $port +set dedicated 2 +set sv_punkbuster $punkbuster +set sv_maxclients $slots +exec myserver.cfg +set fs_basepath /home/$user/$game/$verision/$server +set fs_homepath /home/$user/$game/$verision/$server

Теперь каждый раз, когда я бегу start.sh, он дает мне :

Cannot exec 'quit': No such file in directory

Так что я пошел и посмотрел, не сделал ли я что-то не так в моем скрипте остановки, но я не вижу, что не так. Этот точный скрипт у меня есть на другом компьютере, но на новом он просто не сработает.

stop.sh выглядит как:

#!/bin/bash

user=cabe
game=cod
verision=cod1.5
server=xxx.xx.xxx:28970


# Don't Change This
. /mnt/utilities/files/games/cod/1.5/files/extra/scripts/startup/cod/stop2

и связан со сценарием:

cd /home/$user/$game/$verision/$server
screen -S $port -X quit

Теперь все, что я оставлю после -X, скажет Cannot exec 'blabla'.

Есть ли способ это исправить?

2
задан 28 March 2015 в 16:31

1 ответ

Ваш сценарий остановки не определяет порт (проверьте сценарий запуска, что каждый делает, и это отсутствует). Таким образом, когда Вы работаете эти screen -S $port -X quit команда, она похожа ($port не определяется так, она приводит к пустой строке):

screen -S -X quit

Экран интерпретирует это, как "определено имя сессии к-X, затем работайте эти quit команда в оболочке".

, Если бы у Вас был порт, он был бы похож:

screen -S 28970 -X quit

это означает, "отправляют quit экранное действие на сессию, названную 28970", который является тем, что Вы на самом деле хотите.

Поэтому для фиксации его, просто гарантируйте Ваш stop.sh, сценарий имеет port определенный.

Узнают больше об экранных параметрах командной строки:

https://www.gnu.org/software/screen/manual/screen.html#Invoking-Screen

1
ответ дан 28 March 2015 в 16:31

Другие вопросы по тегам:

Похожие вопросы: