Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 22/11/2012, à 00:30

corgato

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 smile ?

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

Postmortem

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 !


Trusty Tahr (64 bits)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 22/11/2012, à 08:59

Totor

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

corgato

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

Postmortem

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.


Trusty Tahr (64 bits)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 22/11/2012, à 12:25

corgato

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

Postmortem

Re : Nohup ne fonctionne pas...

corgato a écrit :

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 !


Trusty Tahr (64 bits)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#8 Le 22/11/2012, à 13:02

corgato

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

Postmortem

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 ?


Trusty Tahr (64 bits)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 22/11/2012, à 13:44

corgato

Re : Nohup ne fonctionne pas...

Oui j'ai vu mais ça ne change rien ^^

Hors ligne