#1 Le 22/11/2012, à 00:30
Nohup ne fonctionne pas...
Bonsoir,
je n'arrive pas a créer un script qui me permet de mettre à jour mon serveur de jeu...
Enfaite des que je met la commande nohup ça ne fonctionne pas... Et j'en ai besoin, sinon la commande se kill quand je ferme la connexion ssh...
Auriez vous une idée
?
#!/bin/bash
nohup cd /games/ && STEAMEXE=steamcmd ./steam.sh +login MON_LOGIN MON_MDP +force_install_dir /games/kl +app_update 215360 +exit && cd /games/kl && chmod 0777 -R . >> nohup.out 2>> nohup.out &Merci, et bonne soirée !
Hors ligne
#2 Le 22/11/2012, à 00:47
Re : Nohup ne fonctionne pas...
Salut,
Essaie de mettre ta commande dans un script, sans le nohup.
Puis tu lances le script avec nohup.
C'est juste une idée comme ça !
Precise Pangolin (64 bits), Athlon64 3800+, ATI Radeon HD4870
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#3 Le 22/11/2012, à 08:59
Re : Nohup ne fonctionne pas...
Rien d'anormal à ce que cela ne fonctionne pas ...
Seule la partie cd /games/ est appliquée dans le contexte du nohup...
+1 pour Postmortem, sinon une altérnative : utiliser screen
Dernière modification par Totor (Le 22/11/2012, à 09:00)
-- Lucid Lynx --
Hors ligne
#4 Le 22/11/2012, à 12:01
Re : Nohup ne fonctionne pas...
Quand je le mets dans un fichier sans le nohup, et l'exécute manuellement sa fonctionne très bien.
Mais comme je dois l'exécuter automatiquement via un PHP, grâce à la lib ssh2, ça pose problème vu que la connexion se referme directement après du coup la commande se kill.
Et ce n'est pas possible de faire ça justement avec nohup mais en prenant en compte toutes la ligne ?
Hors ligne
#5 Le 22/11/2012, à 12:13
Re : Nohup ne fonctionne pas...
Il faudrait que tu montres comment tu l'appelles via php... Perso, j'y connais rien en php mais ça donnera plus d'indications à ceux qui connaissent pour t'aider.
Precise Pangolin (64 bits), Athlon64 3800+, ATI Radeon HD4870
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#6 Le 22/11/2012, à 12:25
Re : Nohup ne fonctionne pas...
Je l'appelles via SSH2 :
<?php
if($connexion = @ssh2_connect($donnees['serveur_ip'], $donnees['serveur_port']))
{
if(@ssh2_auth_password($connexion, $donnees['serveur_login'], decode_mdp_serveur($donnees['serveur_pass'])))
{
$cmd1 = "cd /".$donnees['serveur_dossier']."/ && STEAMEXE=steamcmd ./steam.sh +login MON_LOGIN MON_MDP +force_install_dir ".$donnees['repertoire']." +app_update 215360 +exit && cd ".$donnees['repertoire']." && chmod 0777 -R .";
$commande = "#!/bin/bash\nnohup ".$cmd1." >> nohup.out 2>> nohup.out &\n";
$stream = ssh2_exec($connexion, "cd /".$donnees['serveur_dossier']." && echo '".$commande."' > /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && chmod 755 /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && ./".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh");
stream_set_blocking($stream, false);
$output = stream_get_contents($stream);
sleep(10);
return '<br />Mise à jour du Serveur En cours !';
}
else
return 'Erreur Authentification';
}
else
return 'Erreur Connexion';Dernière modification par corgato (Le 22/11/2012, à 12:25)
Hors ligne
#7 Le 22/11/2012, à 13:01
Re : Nohup ne fonctionne pas...
Je l'appelles via SSH2 :
<?php if($connexion = @ssh2_connect($donnees['serveur_ip'], $donnees['serveur_port'])) { if(@ssh2_auth_password($connexion, $donnees['serveur_login'], decode_mdp_serveur($donnees['serveur_pass']))) { $cmd1 = "cd /".$donnees['serveur_dossier']."/ && STEAMEXE=steamcmd ./steam.sh +login MON_LOGIN MON_MDP +force_install_dir ".$donnees['repertoire']." +app_update 215360 +exit && cd ".$donnees['repertoire']." && chmod 0777 -R ."; $commande = "#!/bin/bash\nnohup ".$cmd1." >> nohup.out 2>> nohup.out &\n"; $stream = ssh2_exec($connexion, "cd /".$donnees['serveur_dossier']." && echo '".$commande."' > /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && chmod 755 /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && ./".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh"); stream_set_blocking($stream, false); $output = stream_get_contents($stream); sleep(10); return '<br />Mise à jour du Serveur En cours !'; } else return 'Erreur Authentification'; } else return 'Erreur Connexion';
Comme je te disais, je connais pas php mais est-ce que ceci fonctionnerait ??
<?php
if($connexion = @ssh2_connect($donnees['serveur_ip'], $donnees['serveur_port']))
{
if(@ssh2_auth_password($connexion, $donnees['serveur_login'], decode_mdp_serveur($donnees['serveur_pass'])))
{
$cmd1 = "cd /".$donnees['serveur_dossier']."/ && STEAMEXE=steamcmd ./steam.sh +login MON_LOGIN MON_MDP +force_install_dir ".$donnees['repertoire']." +app_update 215360 +exit && cd ".$donnees['repertoire']." && chmod 0777 -R .";
$commande = "#!/bin/bash\n".$cmd1."\n";
$stream = ssh2_exec($connexion, "cd /".$donnees['serveur_dossier']." && echo '".$commande."' > /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && chmod 755 /".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh && nohup ./".$donnees['serveur_dossier']."/fichier_commande/script_".$id_commande.".sh &");
stream_set_blocking($stream, false);
$output = stream_get_contents($stream);
sleep(10);
return '<br />Mise à jour du Serveur En cours !';
}
else
return 'Erreur Authentification';
}
else
return 'Erreur Connexion';M'enfin, ça m'a l'air bien compliqué quand même !
Precise Pangolin (64 bits), Athlon64 3800+, ATI Radeon HD4870
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#8 Le 22/11/2012, à 13:02
Re : Nohup ne fonctionne pas...
Non ça ne fonctionne pas comme ça.
Je crée bien le fichier mais la connexion se referme juste après du coup la commande est stoppé.
C'est pour ça que je voulais mettre en place nohup.
Hors ligne
#9 Le 22/11/2012, à 13:11
Re : Nohup ne fonctionne pas...
Il faut t'arranger à mettre le nohup sur l'appel du script et non pas dans le script comme tu l'as fait. T'as vu que j'avais rajouté le nohup plus loin ?
Precise Pangolin (64 bits), Athlon64 3800+, ATI Radeon HD4870
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#10 Le 22/11/2012, à 13:44
Re : Nohup ne fonctionne pas...
Oui j'ai vu mais ça ne change rien ^^
Hors ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » Nohup ne fonctionne pas...