Contenu | Rechercher | Menus

Annonce

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.

À propos de l'équipe du forum.

#1 Le 20/10/2010, à 17:15

DreamNooby

Script pour arreter et redemarer un programme "a une heure donnée"...

Salut à tous ! smile

Je ne suis pas un pro du script Bash.
Quelqu'un pourrait il me conseiller concernant "un genre de script" pour pouvoir arrêter puis redémarrer une application

Par exemple tous les jours ou tous les 2 jours à une heure donnée...
Ou encore aussi après un temps écoulé ?

Je précise que je lance l'application par un petit bash et que parfois je lance le bash avec la commande screen bash xx.sh

Merci beaucoup ! wink

Dernière modification par DreamNooby (Le 20/10/2010, à 17:16)

Hors ligne

#2 Le 20/10/2010, à 17:18

TuxQc

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Salut  !

en ligne de commande, fais un :   man crontab

Cron est le daemon qui fait exactement ce que tu décris.  Tu n'as qu'à configurer les récurrences et la commande en question et hop !

Pour avoir des exemples d'utilisation, recherche sur le net avec ce mot clé !

Je m'en sers afin d'enregistrer une émission que j'aime bien sur une webradio pour l'utiliser en balado-diffusion.

Au plaisir !

Hors ligne

#3 Le 20/10/2010, à 20:10

ehmicky

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

On pourra t'aider ensuite car pas mal de gens ont des problèmes avec cron au début.


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#4 Le 21/10/2010, à 09:00

iuchiban

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Salut,

Effectivement, cron et crontab peuvent t'aider

DreamNooby a écrit :

Par exemple tous les jours ou tous les 2 jours à une heure donnée...

Dans le premier cas, tu fais :

crontab -e

Puis tu ajoutes le texte suivant (MM représente les minutes et HH les heures auxquelles il faut lancer le batch:

MM HH * * * screen bash xx.sh
MM HH */2 * * screen bash xx.sh
DreamNooby a écrit :

Ou encore aussi après un temps écoulé ?

Là, il faut plutôt utiliser la commande sleep

sleep X ; screen bash xx.sh

http://fr.wikipedia.org/wiki/Sleep_(Unix)


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#5 Le 13/02/2011, à 03:53

DreamNooby

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Hello  ! wink


Explications :

Merci beaucoup de vos réponses, et je vous présente toutes mes excuses pour ma réponse tardive... depuis j'avais dû faire beaucoup de recherches par moi-même : comment installer en mode console uniquement certaines choses plus ou moins compliquées y compris un Linux 10.04 LTS, comment créer des comptes correctement en respectant les "bon chmod", gérer un minimum  les FTP vers un accès à distance et limiter les accès aux dossiers, comment configurer de nombreux paramètres de manière à éviter certains soucis, comment installer l'applications concernée et la mettre à jour manuellement avec ses add-ons et ses patchs, etc...

A un moment j'avais même failli laisser tomber vu que je ne trouvais pas la société d'herbergement adéquate à cause de contraites techniques et financières. Mais finalement j'ai fini par trouvé... cela fonctionne, mais depuis je suis confronté aux problèmes mentionnés dans mon poste, c'est ce que je redoutais c'est pour cela que j'avais posé la question.

Et je m'aperçois que cela semble bien plus compliqué que je ne le pensais, parce que je ne connais pas bien l'ensemble des fonctions de Linux ni le scripting nécessaire, ni encore moins les commandes liées au scripts.


Je paie le serveur de ma poche et je rends service à pas mal de personnes sur internet en laissant son accès et son usage gratuit : c'est une application open source (donc ça serait idiot de faire payer surtout que ce n'était pas le but!!) ; le seul souci est que cette application a tendance à planter au bout de quelques jours.

Comment je fais pour l'instant ? : j'utilise l'interface virtuelle et je fais un bon vieux Ctrl+C... si l'application x86 n'est pas déjà plantée... puis je relance manuellement le bash. (il faut dire que l'application est encore partiellement en test et en développement)


Besoins :

===> Ainsi j'ai réellement besoin de la relancer l'application qui est de type x86 une fois tous les 2 jours seulement pour cela il faut déjà commencer par l'identifier pour pouvoir l'arrêter ; c'est là que ma question devient compréhensible et qu'elle prend alors tout son sens :

J'ai par exemple trouvé ce lien qui est sympatique et qui pourrait certainement aider pas mal de monde pour aider a générer un paramétrage pour "cron" :
http://www.generateit.net/cron-job/

Dans mon cas cela a donné 10h00 tous les jours pairs :

* 10 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 * * /path_to_script


Je lance avec screen une application de type x86 grâce a un script bash.

Dans le bash on trouve quelque chose de ce genre :

#!/bin/sh
screen application

Seulement  je ne peux réaliser cela parce que cela dépasse mes compétences actuelles

Parce que pour que cela fonctionne, il me semble qu'il faudrait tout un système de scripts pour :

Tous les deux jours avec l'aide de cron :
- identifier l'application à arrêter
- si possible vérifier qu'elle est arrêtée
- relancer l'application (donc le bash concerné)

Pourriez-vous me proposer un script qui pourrait convenir pour réaliser cela ?

En espèrant que quelqu'un pourrait partager "un script" de ce genre...
Merci beaucoup wink

Dernière modification par DreamNooby (Le 13/02/2011, à 13:25)

Hors ligne

#6 Le 13/02/2011, à 15:27

FRUiT

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Ceci devrait marcher :

#!/bin/sh

while pkill -0 app; do sleep 10; done
screen app

http://www.commandlinefu.com/commands/v … unch-prog2

Dernière modification par FRUiT (Le 13/02/2011, à 15:37)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#7 Le 13/02/2011, à 23:45

DreamNooby

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Merci de votre réponse wink

Seulement l'application ne veut rien savoir par le batch.
même en y mettant la simple commande pkill -0 appli ou un  pkill appli 

Par contre si je fais directement dans la console : pkill appli cela fonctionne.

Comment cela se fait ??

Dernière modification par DreamNooby (Le 13/02/2011, à 23:46)

Hors ligne

#8 Le 14/02/2011, à 13:56

FRUiT

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Que en passant par cron ou même en lançant le bash en console ?

T'as essayé killall à la place de pkill ?


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#9 Le 14/02/2011, à 16:33

DreamNooby

Re : Script pour arreter et redemarer un programme "a une heure donnée"...

Merci pour votre aide

Pourquoi si on tape directement la commande dans la ligne de commande cela fonctionne et que si je la lance par un bash cela fonctionne pas ? (que cela soit pkill ou killall)

Est-ce que le fait de lancer l'application sur un compte puis d'ouvrir une fenetre avec screen (sous le même compte) pour lancer le bash d'arret de l'application change quelque chose par rapport au fait de taper directement dans la ligne de commande ?

*Evolution de mon besoin :*
Par ailleurs, mon besoin vient peut-être de changer un peu : comment on fait pour arreter la bonne application quand on lance deux applications portant le même nom mais sous deux comptes différents ?

Merci beaucoup par avance et désolé pour ces difficultés

Hors ligne