» »

[Bash] remote izvajanje ukazov prek ssh

[Bash] remote izvajanje ukazov prek ssh

ta-mau ::

Zanima me zakaj spodnji ukaz deluje na random.. Včasih deamona požene včasih ne...

ssh -t host "sudo /etc/local/sbin/gmond"

Pred tem ukazom je bila komanda ki se je izvajala lokalno. Ko sem jo odstranil je bilo število uspešnih poskusov večje, vendar še vedno pri nekaterih se ukaz ni izvedel..

Je morda še kakšna druga opcija kako lahko oddaljeno izvajam ukaze?

jype ::

Kako pa zgleda, ko ne dela?

Poskusi s "ssh -v", da vidiš, kaj se dogaja.

ta-mau ::

Uf to pa pomoje ne bo tako simpl za razvozlat.. Razlika med uspešnim zagonom gmonda in neuspešnim je samo v zamenjavi spodnjih blokov:

 Blok 1...........
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed


 Blok 2.............
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug2: channel 0: rcvd eow
debug2: channel 0: close_read
debug2: channel 0: input open -> closed


Če se gmond uspešno zažene velja zaporedje blok1,blok2.. v nasprotnem primeru se blok 1 izvede za blokom 2 in zagon ne uspe.. Tak pattern se pojavlja pri najmanj treh takih primerjavah... Ostale procedure so identične razen pač naslovov strežnikov in pa kripto parametrov..

jype ::

Vrstica

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0

pomeni, da ti je remote proces exitnu, mogoče zato, ker enak proces tam že teče in se noče zagnat še enkrat?

ta-mau ::

Preden ga grem ponovno zaganjat ga pregledam s ps da zagotovo ne teče, tako da najbrž ne bo to vzrok..

ta-mau ::

Sklepam da se pri prvem ukazu ustvarijo dva procesa, kjer se v childu izvaja zagon gmonda, očitno pa najbrž nastane težave ker status gmonda ni upoštevan pri parentu? Stvar sem rešil tako da zaganjanje demona prepustim ukazu service, ki stvar pravilno forka in nov child proces nadomesti z gmondom (exec ukaz).

Torej prva rešitev je : ssh -t host "sudo service gmond"
Druga rešitev pa je lahko tudi z ukazom nohup, ki bi v tem primeru ignorirala signal starša sighup in bi proces, če se ne motim postal orphaned in živel naprej.. Težava v tem primeru je ta da ga ne moreš normalno ugasnit ampak le na silo z kill -9 #proc_pid


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

alarm med inštaliranjem

Oddelek: Pomoč in nasveti
7882 (609) mulc007
»

Ne zazna HDD pri zagonu

Oddelek: Pomoč in nasveti
141230 (1005) -žiga-
»

BIOS problem!

Oddelek: Pomoč in nasveti
71480 (1409) Spike Edin
»

kako mountat USB ključ v linuxu

Oddelek: Operacijski sistemi
492492 (1999) Senzacionale
»

Črke pogonov v Windowsih

Oddelek: Pomoč in nasveti
161370 (1205) spucek

Več podobnih tem