Portál AbcLinuxu, 29. července 2025 01:27


Dotaz: spouštění/stopování démonů z grafiky

bazil avatar 9.2.2007 14:05 bazil | skóre: 33 | blog: sluje | Miroslav
spouštění/stopování démonů z grafiky
Přečteno: 102×
Odpovědět | Admin
Ahoj,
tohle je spíš taková žádost o návrh, než dotaz, chtěl bych nějak docílít toho, abych měl v gnome(případně i nějak nezávisle na WM) přepínátko, který na jedno kliknutí spustí démona (např apache) a změní svoji ikonku, abych poznal že je spuštěnej a na druhý kliknutí stopne apacha a změní svoji ikonku, abych poznal že je vyplej. Chtěl bych to kůli pracovnímu NB, na kterém je zbytečné, aby takovéto věci běžely pořád. Máte někdo nějakej nápad, jak to řešit? Díky.

PS: Kdyby se to tu už řešilo, tak se omlouvám, nevěděl sem, co hledat.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.2.2007 18:46 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Určitě bude něco v distribuci ne ?

V FC6 je /usr/bin/system-config-services

Jinak není problém si vytvořit skript který spustí a nebo ukončí nepotřebné démony.
9.2.2007 18:49 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
V Mandrivě drakxservices, zobrazí název - stav - jestli se má poutět při startu - tlačítko spustit/zastavit. Ale ikonky to žádný nemá :-)
bazil avatar 10.2.2007 02:30 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
ani FC6 ani mandrivu nemam a už vůbec mě nezajímá spouštění démodu po startu ... chci na to mít nějaký indikátor v gui třeba jako je ve win u apacha ikonka v tray
9.2.2007 21:12 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus tohle. Nevím, jakou distribuci používáš, nicméně předpokládám, že se démoni ovládají pomocí /etc/init.d/služba [start|stop|status]. Jestli je služba aktivní testuju pomocí parametru "status" a hledám slovo "running", což je asi hodně naivní přístup.
#!/usr/bin/env python
import subprocess, gtk

services = ['httpd', 'vsftpd', 'cups']

class Services:
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("service controller")
        self.window.set_position(gtk.WIN_POS_CENTER)
        self.window.connect('delete_event', self.delete_event)
        self.window.connect('destroy', self.quit)
        self.box = gtk.VBox(False, 0)

        for service in services:
            button = gtk.ToggleButton(service)
            button.set_active(self.is_service_running(service))
            button.connect('clicked', self.clicked_cb, service)
            button.show()
            self.box.pack_start(button, True, True, 0)            
        self.box.show()
        self.window.add(self.box)
        self.window.show()

    def is_service_running(self, service):
        cmd = ['/etc/init.d/' + service, 'status']
        proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
        return 'running' in proc.stdout.read()
        
    def clicked_cb(self, widget, service):
        if widget.get_active():
            print 'starting service', service
            cmd = ['/etc/init.d/' + service, 'start']
        else:
            print 'stopping service', service
            cmd = ['/etc/init.d/' + service, 'stop']
        subprocess.call(cmd)

    def delete_event(self, widget, data):
        return False

    def quit(self, widget, data = None):
        gtk.main_quit()        

    def main(self):
        gtk.main()

s = Services()
s.main()
Musí se to pouštět jako root, což vyžaduje trochu odvahy. Jde spíš o ukázku řešení, napadá mě spousta situací, kdy to nebude spolehlivé :-(
10.2.2007 01:33 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
Možná je trochu přehlednější, když se místo zamačkávacích čudlíků použijí zaškrtávátka. Dosáhne se toho změnou řádku č.16 na
button = gtk.CheckButton(service)
bazil avatar 10.2.2007 02:31 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
jo zhruba tohle mě zajímá, jestli sem to dobře pochopil, a taky mi to ukázalo, že si to holt budu muset asi naprogramovat ... už bych se ten python měl naučit ...
Josef Kufner avatar 10.2.2007 18:09 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše spouštění/stopování démonů z grafiky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pak se ještě zamysli nad tím, zda není lepší nechat tyhle démony nečinně odpočívat ve swapu, než zatěžovat systém překreslováním ikonky.

Například proftpd za 84 dní běhu mého notebooku spotřeboval 3.77 sekund procesorového času a momentálně používá 244 KB paměti a 132 KB sdílené paměti. Cups je na tom podobně (512 KB, 236 KB, 21 sec).

Apache2 má spuštěno 8 procesů, dohromady používá kolem 10 MB paměti. Ani jeden proces nespotřeboval více jak 1 sekundu času. Mysqld běží ve zhruba stejném počtu vláken, používá kolem 1 MB paměti a času spotřebovalo cca 20 sec.

Pro srovnání: Firefox žere přes 70 MB paměti + 17 MB sdílené a od včerejška už zvládnul spotřebovat téměř hodinu a půl času procesoru. Gajim bere 105 MB paměti a za několik posledních dní se přes tu hodinu už dostal taky. Ani Evolution se svými 84 MB není nijak pozadu.

Myslím, že když nebudeš tolik hýbat myší, ušetříš víc ;-)
Hello world ! Segmentation fault (core dumped)
bazil avatar 10.2.2007 19:13 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
mno co já sem měl spuštěný mysql a apacha, tak to byly právě výrazně větší položky v ramce, co mě nenechaly na pokoju ... jinak ftp a ssh chcu stopovat proto, že je potřebuju jednou za uherskej rok ...
Josef Kufner avatar 10.2.2007 19:51 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
Ono MySQL i Apachovi lze jejich spotřebu paměti trošku snížit, ale u mě asi hodně dělá suspend, který je celkem násilně odswapuje.

Pak je tu ještě jedna možnost, která se jmenuje inetd.
Hello world ! Segmentation fault (core dumped)
bazil avatar 11.2.2007 01:22 bazil | skóre: 33 | blog: sluje | Miroslav
Rozbalit Rozbalit vše Re: spouštění/stopování démonů z grafiky
mno spotřebu sem se jim snažil snížit co nejvíc a z inetd sem si ještě nehrál, možná to budu muset zkusit

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.