Pages : 1
#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
Pages : 1