Portál AbcLinuxu, 6. června 2024 07:22


Dotaz: ověření běhu aplikace s argumentem

6.6.2023 10:03 pou | skóre: 18
ověření běhu aplikace s argumentem
Přečteno: 377×
Odpovědět | Admin
Příloha:
Ahoj, mám soubor app v tomto souboru je na každém řádku aplikace a její argument. Potřebuji skript, který projde všechny řádky a zkontroluje zda aplikace s příslušným parametrem běží. Problém je v tom, že argument může obsahovat znaky jako $'". Zde je příklad tohoto souboru:
PP_gio.sh
serial2eth -a 192.168.100.180 -d /dev/can2eth -p 64549 -c CAN$ID00=419360256$ID01=419363863$ID02=419361024$ID03=419343905$ID04=419361280;'
Variable_announce
udp_listen.py -p 4455 -f gui_log.txt -t

Zde je můj pokus:
while read p_origin; do
	p=$(echo $p_origin|sed -e 's/\r//g')

	APP=$(echo "${p}")
	AP_DIR=$(dirname "${APP}")
	AP_AP=$(basename "${APP}") 
	echo "line: ${p_origin}"
	RUNNING=$(ps -Af|grep -F "${p_origin}" |grep -v "grep" )
	if [ -z "$RUNNING" ]; then
		ERROR "${APP} not running"
	else
		INFO "${APP} running"
	fi
done <$FILENAME 
zde fungují všechny řádky kromě řádku s "serial2eth". Máte někdo návrh jak to udělat? Nejraděj bych se držel grepu. Ještě je pořeba říci, že skript chci nakonec nasadit na embedded zařízení kde je busybox - tedy omezené množství příkazů.

Pokud ale zkusím ručně:
serial2eth -a 192.168.100.180 -d /dev/can2eth -p 64549 -c CAN$ID00=419360256$ID01=419363863$ID02=419361024$ID03=419343905$ID04=419361280;'
Pak dostanu správný výsledek, ve skriptu však nefunguje.

Zkoušel jsem debug pomoci set -x ale bohužel nemám potřebné vědomosti - přikládám do přílohy.

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

Odpovědi

6.6.2023 11:08 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vieš to upraviť na foo-bar simple príklad?
debian.plus@protonmail.com
6.6.2023 12:15 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemáš ošetrené znaky $ a ` v:
grep -F "${p_origin}"
A v tom finálnom enviroment je interpret bash alebo sh?
debian.plus@protonmail.com
6.6.2023 13:04 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
A ani ošetrený znak ".
debian.plus@protonmail.com
6.6.2023 14:52 pou | skóre: 18
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Myslel jsem si že ošetřední je právě ono -F u grepu. Mužete tedy poradit jak ošetřit znaky
$'.
? Díky
6.6.2023 22:53 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Asi s tými parametrami som sa mýlil (dačo som testoval u seba). Ale, ak nie, tak pošli ps aux systému.

Ináč, prečo máš v tom príkladnom súbore v riadku so serial2eth na konci bodkočiarku a znak '? Ak sa to spúšťa vo shell, tak ta bodkočiarka nie je ako parameter programu, lebo v SHELL slúži bodkočiarka ako rozdeľovač viacerých príkazov na jednom riadku.
debian.plus@protonmail.com
6.6.2023 13:55 pou | skóre: 18
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
je tam bash
6.6.2023 14:19 jejda | skóre: 24 | blog: jejda
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Odpovědět | | Sbalit | Link | Blokovat | Admin
To vypadá, že busyboxí ps ty přepínače -Af vůbec nezná. Navíc busybox umí přímo pgrep
6.6.2023 14:49 pou | skóre: 18
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
busybox nezna -Af ale pouze ps vypíše to stejné co -Af u mě na debianu
13.6.2023 09:28 MM
Rozbalit Rozbalit vše Re: ověření běhu aplikace s argumentem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj,

setkal jsem se s tím, že u busyboxu (aktuální buildroot) záleželo na velikosti okna terminálu (třeba přes ssh, záleželo na velikosti okna v počítači, ze kterého jsem se do embedded zařízení připojoval) u výpisu příkazu ps. Řešením bylo použít 'ps -w' místo pouhého 'ps', jinak to ořízlo konec a grep nenašel nic.

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.