Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Pytnovské skripty běžící jako samostatné procesy  (Přečteno 2582 krát)

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Pytnovské skripty běžící jako samostatné procesy
« kdy: 26 Února 2013, 08:36:33 »
Zdravím. Na Ubuntu 12.04 LTS mi běží několik Python skriptů spouštějící se při startu počítače. Pokud je vyhledám v procesech pomocí -  ps aux | grep python -  vyjede mi pár běžících procesů spouštěně Pythnem, ale ne ty mé. Skripty jsou uloženy tradičně v  /usr/bin. Můj dotaz tedy zní.... je možné tyto skripty spouštět jako samostatně běžící procesy ??? Tím mám na mysli, že při opětovném grepnutí viz. výše mi vyjedou samostané řádky a na každém z nich jeden tento skript jako samostatný proces, kde uvidím cestu  např. jako      /usr/bin/python  /usr/bin/nazev_meho_skriptu. Jsem v Pythonu naprostý začátečník budu rád za jakoukoliv radu. Děkuji.   

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #1 kdy: 26 Února 2013, 09:55:26 »
Pokud spouštíš ty skripty samostatně, vždy budou běžet jako samostatný proces. Rozdíl může být jen v tom, jak se ten proces bude jmenovat - pokud spustíš přímo skript (musí mít nastaven spustitelný příznak) a necháš na shellu, aby si z prvního řádku přečetl a spustil interpret pythonu, bude se tvůj pythoní proces jmenovat jako soubor, který spouštíš. Pokud skript spustíš jako python skript, bude jméno procesu python a svůj skript musíš hledat v parametrech. Pokud ale neběží vůbec, tak je někde chyba.

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #2 kdy: 28 Února 2013, 08:21:05 »
Skripty spouštím jako python skripty s cestou k nim na prvním řádku to je v pořádku. Spustitelný příznak taky mají. Jde o to, že některé se vykonají úspěšné a jiné ne, ale v těch procesech nevidím ani jeden běžící...python skript. Zeptám se ještě jinak je možné ty skripty nějak debugovat popřípadě zjistit jestli jim nechybí nějaké knihovny nebo moduly? Při startu systému se žádná chybová hláška nezobrazí vše vypadá naprosto ok v logu systému taky nic není.   

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #3 kdy: 28 Února 2013, 09:59:59 »
Jakým způsobem je spouštíš? Jako init skript, nebo až se startem grafické session? Co vlastně mají dělat?
Můžeš zkusit dát celý skript do try/except a případnou chybu zalogovat, například pomocí loging.exception.

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #4 kdy: 28 Února 2013, 10:44:37 »
Skripty se spouštějí z /usr/bin, některé mají i bash skripty které je spouštějí v adresáři /etc/init.d. Slouží např. k načtení defaultního domovského adresáře s přizpůsobením prostředí pro uživatele, dále skript který povoluje zápis na čtečku karet zařízení  /dev/ttyS0 jehož výstup se autentizuje LDAPem. Dále skript který po startu systému zamkne obrazovku a jako spořič je použit jako bežící text, který uživatelům sděluje jak odemknout pc pomocí čtečky.
Jediné funkční skripty jsou ty s načtením domovského adresáře a přizpůsobením prostředí gnome.     

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #5 kdy: 28 Února 2013, 10:59:23 »
Tady je například skript na zamknutí obrazovky a spouštění spořiče:

#!/usr/bin/python
#
#
from KioCommon import Config
from KioCardReader import CardReader, LogInOut
import os
import os.path
import sys

PIDFILE = "/var/tmp/kio-screen.pid"
is_pid = os.path.isfile(PIDFILE)

conf = Config.conf
scr_text = conf['gnome']['screensaver_text']

pidof_xlock = os.popen("pidof xlock").read()

try:
    pidof_xlock = int(pidof_xlock)
except ValueError:
    pass

# in case, that xlock is already running
if pidof_xlock:
    sys.exit(0)
else:
    # Renew the system in case of automated logout
    if is_pid:
        logout = LogInOut.logout_user("automated")
        renew_cmd = 'echo "renew" | nc localhost 3456'
        os.system(renew_cmd)
    # If it's start of the session, let's write an pidfile
    else:
        pidfile = open(PIDFILE, 'w')
        pidfile.close()
        cmd = 'xlock -background black -mode marquee -messagefont ' + \
              '"-adobe-helvetica-bold-r-*-*-34-240-*-*-*-*-*-*" -message "' + scr_text + '"'
        os.system(cmd)


Zamknutí obrazovky je bash skriptem:

#!/bin/bash
sleep 8
/usr/bin/xautolock -time 3 -locker /usr/bin/kio-screen-locker &
sleep 3
/usr/bin/xautolock -locknow

v souboru kiosk.conf v /etc je definovaný  text
["gnome"]
screensaver_text = " bezici text... "
screensaver_text_size = "40000"
























GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #6 kdy: 28 Února 2013, 12:32:21 »
Nemám teď čas to zkoumat, tak jen obecná poznámka. Problémy se skripty spouštěnými při startu, které něco chtějí po X serveru, často souvisí s tím, že jsou spuštěny moc brzy, kdy ještě X není připraven.

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #7 kdy: 06 Března 2013, 21:23:28 »
no, co na to koukam, tak to neco dela a pak skonci, proc bys to mel videt v procesech? jestli mas pochyby, jesli se to spousti, tak to obal do bashe a touchni si v /tmp/nejakej soubor (nebo to udelej rovnou pythonem), popripade pouzij logging a nekam si vyblej, co se deje....

co se tyce procesu, musi se to poustet jakok samostatnej proces, viz primitivni ukazka:

Kód: [Vybrat]
starenka /tmp % python -c 'while True: pass'
Kód: [Vybrat]
starenka /tmp % ps aux | grep while
starenka 25284 97.1  0.1  22400  4460 pts/2    R+   21:22   0:05 python -c while True: pass
starenka 25346  0.0  0.0   7764   852 pts/5    S+   21:22   0:00 grep --color=auto while
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #8 kdy: 14 Března 2013, 10:37:35 »
Asi jsem se dříve nevyjádřil jasně za to se omlouvám...potřebuju totiž aby ty skripty běžely neustále ne jenom při startu pc tudíž ideální bude něco jako "Python Eggs server" na kterém neustále poběží tyto skripty. Skripty pro přihlášení a odhlášení uživatele musí běžet neustále jinak se uživatel nebude ani schopen přihlásit.   

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #9 kdy: 14 Března 2013, 10:44:36 »
cili potrebujes radoby deamona? zkus kouknout tohle, chvili sem si s tim hral, vyapda to fajn https://github.com/zedshaw/python-lust
popripade si udelej nejakej jednoduchej nekonecnej cyklus a nech se o spousteni a udrzovani nazivu starat neco, co uz to ma v popisu prace - napriklad supervisor http://supervisord.org/
« Poslední změna: 14 Března 2013, 10:47:32 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

SeriousSam

  • Návštěvník
  • Příspěvků: 24
Re:Pytnovské skripty běžící jako samostatné procesy
« Odpověď #10 kdy: 15 Března 2013, 09:06:35 »
Díky podívám se na to ten Python-lust vypadá dobře jen doufám, že se mi to podaří rozchodit.   :)

 

Provoz zaštiťuje spolek OpenAlt.