Portál AbcLinuxu, 11. května 2025 10:36

Dotaz: BASH: testování, zda skript už běží

5.8.2012 11:09 Milan K. | skóre: 2
BASH: testování, zda skript už běží
Přečteno: 208×
Odpovědět | Admin

Zdravím.

Můžete mi poradit, jestli lze nějakým příkazem v Bashi zjistit, zda je nějaký skript už spuštěný?
Potřeboval bych totiž zajistit, aby se tento skript nespouštěl několikrát současně.

Napadlo mě řešení, ale zdá se mi zbytečně složité:

1) po spuštění skriptu otestovat přítomnost nějakého pomocného souboru na disku.
2) když pomocný soubor neexistuje, vytvořit ho a zapsat do něj "0"
pokud existuje, zkontrolovat jeho obsah, a když je v něm "1", tak se okamžitě ukončit
3) pokud pomocný soubor existuje a obsahuje "0", přepsat ho na "1" ...
4) ... a začít vykonávat příkazy uvnitř skriptu
5) na konci povádění skriptu přepsat obsah pomocného souboru zpátky na "0" a ukončit se

Neexistuje nějaké jednodušší řešení?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.8.2012 11:43 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: BASH: testování, zda skript už běží
Odpovědět | | Sbalit | Link | Blokovat | Admin
flock ?
5.8.2012 11:54 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: BASH: testování, zda skript už běží
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemas to odolne na nepredvidany pad skriptu, ktory po sebe nestihne upratat. Cim zablokuje dalsie spustenie toho skriptu.

Takze namiesto "1" pisem pid ($$) a ak subor existuje, tak hladam, ci existuje proces s pid zo suboru a zaroven nazvom toho skriptu. A nie, tak to povazujem iba za pozostatky predchadzajuceho behu a nastartujem sa.
If you hold a Unix shell up to your ear, you can you hear the C.
5.8.2012 14:18 Milan K. | skóre: 2
Rozbalit Rozbalit vše Re: BASH: testování, zda skript už běží
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky.

Opravdu jsem neuvažoval s tím, že by se skript zaseknul a pomocný soubor pak trvale zablokoval spouštění skriptu. S tím testováním PID by se test ještě více zkomplikoval.

O funkci flock jsem zatím ještě neslyšel, tak jí zkusím nastudovat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.