Portál AbcLinuxu, 7. května 2025 01:37

Dotaz: Kontrola běžící služby

13.7.2022 13:50 host
Kontrola běžící služby
Přečteno: 680×
Odpovědět | Admin
Ahoj, chtěl bych prosím poradit, jak můžu na serveru pomocí scriptu ověřit zda služba běží či nikoliv. Jde to vůbec? Děkuji

Řešení dotazu:


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

Odpovědi

13.7.2022 14:12 Ignotus | skóre: 10
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
V Linuxe sa až tak neorientujem, ale ak tam máš systemd, skúsil by som

systemctl status service

a následne kontroloval návratovú hodnotu ($?). 0 znamená bežiacu službu, 3 vypnutú službu, 4 neexistujúcu, ostatné netuším.

13.7.2022 15:47 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
ps (Unix).
debian.plus@protonmail.com
13.7.2022 16:04 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Díky, služba běží ale příkaz níže nic nevypíše.
ps -A | grep iredapd
Nějaké jiné možnosti?
13.7.2022 16:15 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Skus ps aux.

Skus grep s parametrom -i.

Pripadne daj výpis procesov s názvom python (keďže ten Tvoj deamon je v python).
debian.plus@protonmail.com
13.7.2022 16:29 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Příkaz
ps -A | grep -i iredapd
nevypíše taky nic.

Příkaz
ps -A | grep python
vypíše
1974 ? 00:00:00 python3
2181 ? 00:00:00 python3
Znamená to, že jeden je ten iredapd? Pokud ano, jak zjistím který?
13.7.2022 17:46 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Pouzi prikaz ps aux.
debian.plus@protonmail.com
13.7.2022 18:52 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Používám ps -ef (ale to je asi jen jiný syntax)
13.7.2022 21:03 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Čo máš za systém? Alebo používaš buxybox?
$ ps -ef|grep [p]ython
root        1339       1  0 08:51 ?        00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
dusan      31108   30222  0 14:51 tty1     00:00:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
debian.plus@protonmail.com
13.7.2022 22:31 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Mám Arch, ale díky tomu, že od 80 let jsem něco dělal v Unixu tak jsem si zvykl na syntax s pomlčkou viz kousek s manu:
EXAMPLES
       To see every process on the system using standard syntax:
          ps -e
          ps -ef
          ps -eF
          ps -ely

       To see every process on the system using BSD syntax:
          ps ax
          ps axu

       To print a process tree:
          ps -ejH
          ps axjf

       To get info about threads:
          ps -eLf
          ps axms

       To get security info:
          ps -eo euser,ruser,suser,fuser,f,comm,label
          ps axZ
          ps -eM
k3dAR avatar 14.7.2022 00:17 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Kontrola běžící služby
myslim ze debian+ si nevsiml ze odpovidas ty a ne tazatel a divil se ze by ani "ps aux" ani "ps -ef" nezobrazilo jako proces vic nez "python3" ;-)
porad nemam telo, ale uz mam hlavu... nobody
13.7.2022 22:07 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Pripadne daj cely výpis ps aux.
debian.plus@protonmail.com
Max avatar 13.7.2022 17:49 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
pidof program
Pokud program běží, vrátí ti to jeho pid.
Zdar Max
Měl jsem sen ... :(
Max avatar 13.7.2022 17:56 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Jinak pokud se jedná o nějaký script, nebo něco, co je spuštěno přes nějaký runtime, tak pid procesu získáš takto:
ps auxww |grep -i program |grep -v grep |awk '{print $2}'
Zdar Max
Měl jsem sen ... :(
13.7.2022 22:07 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Tohle funguje, vrátí pid. Děkuji.

ta podmínka by mohla být takto? Pokud nebude výsledek číslo, restartuje službu.
test ps auxww |grep -i iredapd |grep -v grep |awk '{print $2}' != ?(-)+([0-9]) && service iredapd restart
Max avatar 13.7.2022 22:25 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Dávám přednost něčemu takovému:
#!/bin/bash

PROGRAM=iredapd
CHECKPROG=`ps auxww |grep -i ${PROGRAM} |grep -v grep |awk '{print $2}'`

if [ -z "${CHECKPROG}" ]; then
   echo "Process not found"
   service iredapd restart
fi

Zdar Max
Měl jsem sen ... :(
Řešení 1× (OldFrog {Ondra Nemecek})
Max avatar 13.7.2022 22:26 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Jinak v dnešní době se to řeší na úrovni systemd, netřeba si dělat watchdog scripty.
Zdar Max
Měl jsem sen ... :(
13.7.2022 23:14 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
A jak přesně se to dělá? Je to složité?
k3dAR avatar 14.7.2022 00:26 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Kontrola běžící služby
### editace cele sluzby, zobrazi se ti aktualni obsah sluzby a po ulozeni se systemova cela nahradi tvoji upravenou
sudo systemctl edit --full iredapd

# a do sekce [Service] pridat neco jako:
Restart=on-failure
RestartSec=2
nebo pokud chces zachovat moznost ze aktualizace balicku aktualizuje tu iredapd sluzbu, tak udelas jen "doplnovaci" editaci:
### editace sluzby jen doplnovaci, nezobrazi se ti nic a ty pridas to s cim se ta systemova slouci
sudo systemctl edit iredapd

# a pridat neco jako:
[Service]
Restart=on-failure
RestartSec=2
porad nemam telo, ale uz mam hlavu... nobody
Max avatar 14.7.2022 06:12 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Nebo:
Restart=always
Zdar Max
Měl jsem sen ... :(
14.7.2022 14:08 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Díky a co to přesně dělá?
[Service]
Restart=on-failure
RestartSec=2
Max avatar 14.7.2022 15:32 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Viz manual : systemd.service.
Ve zkratce:
"Restart=on-failure" pokud byla služba nekorektně ukončena, automaticky se provede její restart
"Restart=always" provede re restart služby vždy (někdy se může služba jakoby vnitřně ukončit a na venek se tváří, že to bylo regulérní a pak se v případě "on-failure" sama znovu nenastartuje)
Zdar Max
Měl jsem sen ... :(
16.7.2022 11:18 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Moc děkuji, a jde prosím v nějakém logu dohledat, že se automatický restart provedl?
k3dAR avatar 16.7.2022 15:26 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Kontrola běžící služby
#aktualni stav s 10 (vychozi) poslednich zaznamu
systemctl status iredapd

#aktualni stav s 30 poslednich zaznamu
systemctl status --lines=30 iredapd

#log sluzby dlouhodobej
journalctl --unit iredapd

#log sluzby dlouhodobej s vyfiltrovani
journalctl --unit iredapd | grep -i -e start -e stop
porad nemam telo, ale uz mam hlavu... nobody
16.7.2022 16:26 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Děkuji moc, kam na ty fičury chodíte? To se učí ve škole nebo v nějakém kurzu pro správu serverů?
Josef Kufner avatar 16.7.2022 19:07 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Kontrola běžící služby
man man
Hello world ! Segmentation fault (core dumped)
16.7.2022 23:04 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Studuj:
man systemd
man systemd.service
debian.plus@protonmail.com
13.7.2022 22:01 host
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Tohle nic nevrací
19.8.2022 10:40 palardd | skóre: 7
Rozbalit Rozbalit vše Re: Kontrola běžící služby
Odpovědět | | Sbalit | Link | Blokovat | Admin
používám na tyhle věci icinga2

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.