Portál AbcLinuxu, 13. května 2025 19:24

Dotaz: určení početu procesů v BASHi

15.4.2011 08:10 ext3fs
určení početu procesů v BASHi
Přečteno: 193×
Odpovědět | Admin
Ahoj,

potřebuji spočítat ve skriptu kolik instancí téhož skriptu již běží.

Následující příklad se chová velmi divně:

#!/bin/bash

pidof -x test.sh
echo $(pidof -x test.sh | wc -w)

výstup:
10418
2
Netušíte proč je výstupem 2 místo 1? :)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 15.4.2011 08:35 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak si ty PIDy nech vypsat a zjisti si co je zač ten druhej :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.4.2011 08:51 ext3fs
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
PID je pouze jeden a je to PID skriptu viz priklad. Ale proc wc -w vyhodi pocet 2?
David Watzke avatar 15.4.2011 09:18 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
Tak to zkus bez toho subshellu. Nebo si nech vypsat
echo $(pidof -x test.sh)
jestli to náhodou neovlivňuje ten subshell.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.4.2011 23:18 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
Heh docela dobrej problém. Chyba nastane i pokud bude při kontrole ten jinej skript zrovna spouštět subshell.
15.4.2011 09:27 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
Nevyjede mezi procesy ještě subshell, který se spouští v tom $() ?
15.4.2011 09:27 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: určení početu procesů v BASHi
Pozdě :)

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.