Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: frufru 08 Února 2011, 14:11:14

Název: zamok na program
Přispěvatel: frufru 08 Února 2011, 14:11:14
Dobry den,

mal by som otazku - je mozne zabezpecit aby sa program ktory spustam v crone kazdych 5 minut nespustil viackrat(t.j. ak este neskoncilo predchadzajuce spustenie, aby sa opatovne nespustil).
Konkretne sa jedna o stahovanie mailov pomocou getmailu.

Za odpoved dakujem.
Název: Re: zamok na program
Přispěvatel: Šuohob 08 Února 2011, 14:23:14
mohl by se v cronu spoustet skript treba s touto konstrukci:
Kód: [Vybrat]
if [ -z "`ps -ef|grep jmeno_programu|grep -v grep`" ]; then
jmeno_programu;
fi

tohle zajisti ze se jmeno_programu spusti pouze tehdy, pokud uz nebezi
Název: Re: zamok na program
Přispěvatel: GdH 08 Února 2011, 14:26:29
Jde to jednodušeji:
[[ `pidof -x program` ]] || program
Název: Re: zamok na program
Přispěvatel: starenka 11 Února 2011, 20:49:33
Pokud nemuzes pouzit vyse uvedene (napriklad je to skript v nejakym jazyce, kterej se ti bude tezko grepovat - napriklad, kdyz pobezi vicekrat, ale s ruznejma parametrama), tak pouzivam

Kód: [Vybrat]
#!/bin/bash

JOB="lock-"`echo ${0##*/} | cut -d'.' -f1`
if [ -e $JOB ]; then echo "Job already running";exit
else touch $JOB
fi

./neco.py -p
rm $JOB
Název: Re: zamok na program
Přispěvatel: hama4tux 14 Února 2011, 11:57:03
Co být trochu staromodní a vzít to přez pid?