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 12/05/2008, à 11:05

casimir

delay restart script bash

bonjour comment on peut signifié a un script bash son délais pour qui se relance tout les 15 mn, je sais que cron est la pour ca, mais ya t'il une fonction pour bash ?
Merci

Ca me fait penser aux questions a la c... que je postait y a dix ans pour du php !
Aujoud'hui je suis pas fort, mais je sait regarder dans la doc.

Dernière modification par casimir (Le 12/05/2008, à 11:13)

Hors ligne

#2 Le 12/05/2008, à 11:08

wouldsmina

Re : delay restart script bash

salut,
tu fait une boucle (while je crois) tant que...
a+

Hors ligne

#3 Le 12/05/2008, à 15:06

garnier

Re : delay restart script bash

Bonjour,



while ( true )
do
......ton code
......etc
sleep 15m  # temporisation de 15 minutes, voir man sleep
done

ou

cron

cordialement benoit

#4 Le 13/05/2008, à 12:12

casimir

Re : delay restart script bash

oui cron c'est bien mais pas moyen et je ne sais pourquoi, en plus j'ai pas de /var/log/cron.log donc je peut meme pas voir ce qui lui pose probleme, mais j'arrive quand meme a le faire fonctionner mais le script lui ne se relance pas.
Je vais voir, par contre while marche bien, mais ca reste de la bidouille, tout comme avec cron.
Merci

Hors ligne

#5 Le 13/05/2008, à 22:16

casimir

Re : delay restart script bash

Bon, sleep 15 (secondes, pour les test) ca marchais et ca ne marche plus,
sleep est un ptit progamme que je vois dans $htop et qu'est ce que qui peut faire que sleep ne fonctionne plus ?
Ben ca alors !

Dernière modification par casimir (Le 13/05/2008, à 22:17)

Hors ligne

#6 Le 14/05/2008, à 20:17

casimir

Re : delay restart script bash

Exercice tout simple, est-ce que ca marche ?

#!/bin/bash
while ( true )
do
vlc
sleep 3
killall vlc 
done

Chez moi ca ne marche pas, et chez vous ?
Je voudrait démarer vlc pendant 3secondes et qu'il se coupe et cela indéfiniment.

ou encore
crontab -e

# m h  dom mon dow   command
5/* * * * * cam

lance le script cam toute les 5 secondes mais ca ne marche pas non plus.

Dernière modification par casimir (Le 14/05/2008, à 20:47)

Hors ligne

#7 Le 14/05/2008, à 21:34

Totor

Re : delay restart script bash

pour vlc :

#!/bin/sh
nohup vlc &
mon_pid=$!
sleep 3
kill -9 ${mon_pid}
nohup $0 &
exit 0

explications :
1 : tu lances vlc en tâche de fond et détaché du process
2 : tu attends 3 secondes
3 : tu kill vlc
4 : tu relance le script en tache de fond et détaché de lui même (donc récurence)
5 : fin du process actuel sans killer son fils (lancé en 4).


-- Lucid Lynx --

Hors ligne

#8 Le 14/05/2008, à 22:06

casimir

Re : delay restart script bash

En tout ca si ca ne marche pas c'est de la faute des explications que je donne et j'en suis désolé, Ton script fonctionne trés bien.
je suit man bash ici et cela pour comprendre ce que je fait et les explications que l'on me donne http://pwet.fr/man/linux/commandes/bash
Mais je ne voit rien sur "nohup" donc je ne suit pas sur une bonne doc peut etre.
mais en fait "vlc" était un exemple (mauvais exemple) car c'est un script qui doit se couper et se relancer ce script est et s'appel "cam" (/usr/local/bin/) (pas vlc)

#!/bin/bash
dvgrab -autosplit -card 0 -every 25  -format=dv2 -frames 25 - | vlc --intf dummy  - :demux=rawdv  --sout '#transcode{vcodec=mp2v,scale=1,acodec=mpga,vb=2048,ab=128,deinterlace,croptop=16,cropbottom=16,width=720,height=576,samplerate=44100,fps=25,aenc=ffmpeg}:standard{access=udp,mux=ts,dst=239.255.30.60:1234,sap,description=Source vidéo 1,name="Prise 1394 N°1"}'

Je veut relancer ce script toute les X secondes (3 dans l'exemple que tu as donné)
Je teste différentes solution, comme tu peut le voir, sans succes , cron la,  je comprend vraiment pas, j'ai beau modifier la ligne, relancer cron, rien y fait. pourtant hier j'ai cru que ca fonctionnait, enfin je suis sur que ca fonctionnait avec la boucle while de @garnier. ???

Dernière modification par casimir (Le 14/05/2008, à 22:10)

Hors ligne

#9 Le 15/05/2008, à 10:31

Totor

Re : delay restart script bash

la précision de cron est la minute. Cela signifie que tu ne peux pas demander toutes les X secondes.

par ailleurs, avec cron, tu ne pourras pas arréter le processus lancer les X secondes précédantes (à moins que tu lances un script qui le fait puis qui lance cam).

où alors, tu fais 2 lignes dans cron avec un interval d'1 minute et une fréquence de 2 minutes...

note : à la place de

nohup vlc &

tu mets

nohup script.sh &

avec script.sh :

#!/bin/bash
dvgrab -autosplit -card 0 -every 25  -format=dv2 -frames 25 - | vlc --intf dummy  - :demux=rawdv  --sout '#transcode{vcodec=mp2v,scale=1,acodec=mpga,vb=2048,ab=128,deinterlace,croptop=16,cropbottom=16,width=720,height=576,samplerate=44100,fps=25,aenc=ffmpeg}:standard{access=udp,mux=ts,dst=239.255.30.60:1234,sap,description=Source vidéo 1,name="Prise 1394 N°1"}'

nohup :
1/ man nohup
2/ cela permet de lancer un processus de façon détaché de son processus père (donc de façon autonome)
3/ l'un des intérêts, c'est qui continu à "vivre" même si son père est "mort" (alors que si il n'est pas détaché, lorsque son père meurt, il meurt aussi)

Dernière modification par Totor (Le 15/05/2008, à 10:42)


-- Lucid Lynx --

Hors ligne