Debian fórum

Dotazy => Server => Téma založeno: MrDojo kdy 15. 12. 2012, 20:41:23

Název: Jak "odblokovat" porty?
Přispěvatel: MrDojo kdy 15. 12. 2012, 20:41:23
Zdravím,

mám problém... Mám server s Debianem (squeeze, pravidelně aktualizovaný pomocí příkazu apt get upgrade a update) a na něm Bukkit (Minecraft server - běží v terminálu). Ten Bukkit (web:bukkit.org (http://bukkit.org)) občas spadne a je potřeba ho manuálně nahodit.
Pokud spadne tak se řádně neukončí a nejde spustit bez restartu celého serveru-HW, protože port na kterém má běžet Bukkit je obsazený stále běžcím Bukkitem (na který se však nelze připojit a hrát)

Jsem ve správě serveru lama, takže mám v Debianu grafické prostředí - vím že to není dobré, ale jakmile si budu jistý v příkazech odstraním ho :)

Můje dotazy jsou:
1) Jak manuálně - tj. v terminálu ukončit běžící proces - vyčistit port (aby nebyl obsazený a mohl jsem ho znova použít)
2) Jak automaticky (asi pomocí Cronu, ale nevím jak) zjistit, zda Bukkit je funkční či nikoli a pokud tak ho znova spustit (ukončit a spustit)
3) Jak při startu (ne až po přihlášení) spustit aplikaci nebo jak zajistit start grafického prostředí bez připojeného monitoru - graf. prostředí nenaběhne a začne nabíhat, až když připojím monitor

Děkuji.
Dojo
Název: Re:Jak "odblokovat" porty?
Přispěvatel: Roman Horník kdy 16. 12. 2012, 14:38:50
Zabít se dá jednoduše, navíc je dost pravděpodobný, že tím uvolníš port.
Nejprve zkus aplikaci killnout jako normální uživatel:
killall bukkit
Jestli to nepůjde, budeš to muset zkusit jako root:
sudo killall bukkit
Jestli to nepůjde po dobrým, sestřel ho kanónem:
sudo kill -19 `pidof bukkit`; sudo kill -9 `pidof bukkit`
Pokud je totiž ve stavu, kdy se nedá zastavit, nedá se jen tak killnout, proto mu nejdřív pošleme SIGSTOP (19), až pak SIGKILL (9)
Jestliže se binárka, kterou spouštíš (a tedy i proces), jmenuje jinak, v příkazech nahraď bukkit správným názvem.

Ten program neznám, nevím tedy, jak zjistit, jestli funguje nebo ne. Možná by se to dalo vyřešit malým skriptíkem, (ana)cron/at se na to nehodí

Nikde neuvádíš, jaký prostředí používáš
Název: Re:Jak "odblokovat" porty?
Přispěvatel: MrDojo kdy 17. 12. 2012, 16:32:33
Děkuji! :D
Název: Re:Jak "odblokovat" porty?
Přispěvatel: MrDojo kdy 18. 12. 2012, 18:37:21
Ještě jeden dotaz..
Ten Bukkit je java aplikace. Na serveru mi jich běží více zároveň a když dám killall -9 java ukončím všechny. Jde nějak specifikovat, že chci ukončit jen jeden java proces?
Název: Re:Jak "odblokovat" porty?
Přispěvatel: Roman Horník kdy 18. 12. 2012, 19:17:57
Proces můžeš ukončit právě podle jeho PID (ID procesu; nejstarší proces, init, má PID 1, čím novější, tím vyšší číslo).
PID každýho procesu zjistíš pomocí příkazu:
pidof proces
Vyleze z toho například:
uzivatel@debian:~$ pidof bukkit
13498 8192 4176 2048

To znamená, že bukkit má procesy s ID 13498, 8192, 4176 a 2048. A jestliže zlobí proces s ID 13498, zabijeme ho pomocí:
kill 13498
PID 8192, 4176 a 2048 zůstanou žít, kdežto 13498 zemře.
Název: Re: Jak "odblokovat" porty?
Přispěvatel: MrDojo kdy 19. 12. 2012, 16:35:29
Děkuji moc!
Název: Re: Jak "odblokovat" porty?
Přispěvatel: Roman Horník kdy 19. 12. 2012, 16:43:31
:)