Fórum Root.cz
Hlavní témata => Server => Téma založeno: fotka 30. 04. 2010, 02:33:45
-
Ahoj,
chtěl bych jen potvrdit mojí doměnku že pokud jsem připojen k serveru přes Putty a selže mi při vykonávání nějakého příkazu připojení k internetu tak ten příkaz se stejně sám dokončí na serveru?
děkuji
-
Jen pokud nebude reagovat na SIGHUP.
-
jestli chces, aby se dokoncil, tak nejlip pouzivej screen nebo alespon &
-
SIHUPu nerozumím a jak můžu použít ten & a screen?
-
Skus prikaz nohup. Napr.:
nohup <nejaky prikaz> &
potom sa mozes odpojit a pobezito dalej.
-
ten nohup vetsinou neni potreba, ale radsi si to vyzkousej
staci tedy: muj_slozity_prikaz &>soubor_s_vystupem &
screen je promakanejsi, kdyz se odpojis a zase pripojis, tak se tvari, jako ze se nic nestalo :)
pustis screen
pak tvuj_prikaz
pak se muzes odpojt ctrl+a+d a zrusit ssh, nebo ssh zatuhne
tak udelas ssh znovu a das screen -d -r a jsi, kde jsi byl predtim
doporucuji nejaky tutorial screen, abys vedel, jaky zkratky pouziva
-
BNW, co se stane, kdyz se pripojim pres ssh, pustim si screen, pustim svuj slozity prikaz a pak spadne spojeni bez toho, ze bych se ve screenu odpojil od konzole??
-
screen i prikaz bezi dal, akurat si pamatuje, ze si se neodpojil
proto radim screen -d -r (detach + reconect), kterej to stary (mrtvy nebo zivy, ale z jinyho pocitace treba) spojeni zrusi
pokud si se odpojil, tak funguje taky
-
BNW, co se stane, kdyz se pripojim pres ssh, pustim si screen, pustim svuj slozity prikaz a pak spadne spojeni bez toho, ze bych se ve screenu odpojil od konzole??
Podle situace. Pokud SSH shodí spojení, pak je screen odpojený (SSH vyhodí SIGHUP a screen se odpojí). Pokud však SSH zatuhne (třeba čeká na nějaký timeout), pak se screen stále tváří jako připojený a je nutné jej přimět se odpojit pomocí -d.
-
Podle situace. Pokud SSH shodí spojení, pak je screen odpojený (SSH vyhodí SIGHUP a screen se odpojí). Pokud však SSH zatuhne (třeba čeká na nějaký timeout), pak se screen stále tváří jako připojený a je nutné jej přimět se odpojit pomocí -d.
Ano, tohle je důležité i vzhledem k odpovědi na původní otázku. SSH totiž by default neposílá žádné keepalive pakety*, takže když klient v tichosti zmizí (například vytažením kabelu z počítače) a zároveň příkaz spuštěný přes SSH neprodukuje žádný výstup, který by se server snažil doručit klientovi, pak SSH server nemá žádnou šanci zjistit, že klient zmizel a spojení se vede stále jako navázané.
*) Ve skutečnosti by default posílá TCP Keepalive pakety, pomocí volby soketu SO_KEEPALIVE. Tato volba ale posílá keepalive jednou za dvě hodiny, což je něco jako vůbec :)
-
No človeče, nic osobního, ale doporučuju aby ses o žádný server nestaral, nebo si strašně nabiješ ústa... Nejen že neznáš základy UN*Xu - procesy a jejich vztahy, základní příkazy a BASH, ale jsi dokonce tak líný, že ani nedokážeš zeptat se strejdy googla....