Portál AbcLinuxu, 29. dubna 2024 01:23


Dotaz: Supervisord spousti subprocess, jak ziskat jeho pid ?

30.8.2018 15:36 kukin
Supervisord spousti subprocess, jak ziskat jeho pid ?
Přečteno: 176×
Odpovědět | Admin
Ahoj, v supervisoru mam konfiguraci:
[program:snx]
command=/script.sh
startsecs = 0
Script pak vypada:
/usr/bin/expect << eof
exec snx -s ${SNX_SERVER} -c ${SNX_CERTPATH}
expect "*?assword:"
send "${SNX_CERTPASS}\r"
expect "*Do you accept*"
send "y\r"
expect "SNX - connected."
interact
eof
Problem je, ze tohle zafunguje a vrati se exit code 0, coz supervisor vyhodnoti jako exited stav.

Ale subprocess snx bezi na pozadi.

Otazka, jak predat supervizoru informaci o tom s jakym PID byl SNX vystartovan, aby kontroloval prave tento proces, ne process expectu.

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

Odpovědi

30.8.2018 16:22 kukin
Rozbalit Rozbalit vše Re: Supervisord spousti subprocess, jak ziskat jeho pid ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkousim neco takoveho:
#!/usr/bin/expect -f
exec snx -s $env(SNX_SERVER) -c $env(SNX_CERTPATH)
expect "*?assword:"
send "$env(SNX_CERTPASS)\r"
expect "*Do you accept*"
send "y\r"
expect "SNX - connected."
interact
, ale to spravne nespusti proces.
30.8.2018 16:54 debian+
Rozbalit Rozbalit vše Re: Supervisord spousti subprocess, jak ziskat jeho pid ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pozri si program/prikaz wait a pouzi ho:
$ wait --help
wait: wait [-n] [id ...]
    Wait for job completion and return exit status.
    
    Waits for each process identified by an ID, which may be a process ID or a
    job specification, and reports its termination status.  If ID is not
    given, waits for all currently active child processes, and the return
    status is zero.  If ID is a a job specification, waits for all processes
    in that job's pipeline.
    
    If the -n option is supplied, waits for the next job to terminate and
    returns its exit status.
    
    Exit Status:
    Returns the status of the last ID; fails if ID is invalid or an invalid
    option is given.

Josef Kufner avatar 30.8.2018 23:25 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Supervisord spousti subprocess, jak ziskat jeho pid ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Viz http://supervisord.org/api.html#process-control.
Hello world ! Segmentation fault (core dumped)

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.