web-dev-qa-db-fra.com

ne peut rien exécuter: aucun fichier ou répertoire de ce type ne s'affiche

Je lance des serveurs de jeux Call of Duty avec écran.

J'ai un 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

et il est lié à cette

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

Maintenant, chaque fois que je lance start.sh, cela me donne:

Cannot exec 'quit': No such file in directory

Je suis donc allé voir si mon script d’arrêt avait mal agi, mais je ne vois pas ce qui ne va pas. J'ai ce script exact sur une autre machine, mais sur cette nouvelle machine, cela ne fonctionnera tout simplement pas.

stop.sh ressemble à:

#!/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

et est lié au script:

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

Maintenant, tout ce que je mets derrière -X dira Cannot exec 'blabla'.

Y'a t'il un moyen d'arranger cela?

2
Tommy Fernández

Votre script d'arrêt ne définit pas le port (vérifiez le script de démarrage, celui-ci le fait et celui-ci est manquant). Ainsi, lorsque vous exécutez la commande screen -S $port -X quit, il semble que ($ port n'est pas défini, il en résulte une chaîne vide):

screen -S -X quit

Screen interprète cela comme "définissez le nom de session sur -X, puis exécutez la commande quit à l'intérieur d'un shell".

Si vous aviez le port, cela ressemblerait à:

screen -S 28970 -X quit

cela signifie "envoyer l'action d'écran quit à la session nommée 28970", ce que vous souhaitez réellement.

Donc, pour résoudre ce problème, assurez-vous simplement que votre script stop.sh a bien port défini.

En savoir plus sur les paramètres de ligne de commande de l'écran:

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

1
roadmr