Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Юниксовые сигналы в Яве


Автор: Nobody 26.9.2003, 18:26
Как? И есть ли они вообще?

Автор: Sun 26.9.2003, 18:31
Ты имеешь ввиду можно ли на Java сделать kill -9 <pid>? Такого конечно нет.

Автор: Nobody 26.9.2003, 19:55
Я имею в виду, может ли она ловить сигналы?

Автор: Sun 26.9.2003, 08:06
Боюсь что стандартных средств для этого в Java нет и единственной реакцией на сигнал будет скоропостижная смерть процесса получившего сигнал.

Автор: dzheika 27.8.2008, 19:22
блина... а так вот надо отловить kill -15, с kill -9 то и так понятно, убил и все smile а вот по сигналу TERM хотелось бы повесить какой-нибудь тред в спящем режиме, после оповещения который бы пробудился да корректно позавершал демоническую работу приложения... smile.. эх.
Так значит нету таких средств...?

Добавлено через 8 минут и 25 секунд
что-то нашел.... http://ringlord.com/publications/jsignals-howto/jsignals.pdf

Автор: Shaggie 28.8.2008, 08:10
Код

...
// импорты
import sun.misc.Signal;
import sun.misc.SignalHandler;
...
// класс-обработчик сигнала
class stop implements SignalHandler {
    // метод, который нуждается в переопределении
    public void handle(Signal sig) {
        System.exit(0);
    }
}
...
// обработка требуемого сигнала соответствующим обработчиком
Signal.handle(new Signal("TERM"), new stop());
...

Автор: w1nd 28.8.2008, 11:48
Shaggie, это не java, а sun java runtime - это две большие разницы smile

Автор: Shaggie 28.8.2008, 12:07
Цитата(w1nd @  28.8.2008,  12:48 Найти цитируемый пост)
не java, а sun java runtime - это две большие разницы

w1nd, можно поподробнее?

Автор: LSD 28.8.2008, 14:34
Ну TERM обработать просто:
Код

class ExitHook extends Thread
{
  @Override
  public void run()
  {
    // do job here
  }
}

и при запуске:
Код

Runtime.getRuntime().addShutdownHook(new ExitHook());

Автор: w1nd 29.8.2008, 12:07
Цитата(Shaggie @  28.8.2008,  12:07 Найти цитируемый пост)
w1nd, можно поподробнее?

Shaggie, пакет sun.misc не является частью публичного api и наличие его в jre того или иного производителя гарантировать нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)