Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Запуск Java как демона

Поиск:
Иногда возникает необходимость запуска Java приложения как демона в системе Unix. Например, если мы устанавливаем терминальное соединение с удаленным сервером и нам нужно запустить некоторую программу и разорвать соединение не дожидаясь ее завершения. При простом запуске в фоне, мы не можем разорвать соединения, не завершив программы. Поэтому нам нужно запустить Java в процессе, не связанном ни с одним терминалом. Проще всего это сделать через программу написанную на Perl:
Код

#!/usr/bin/perl

use POSIX qw(setsid);

chdir '/'                 or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";
open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork)   or die "Can't fork: $!";
exit if $pid;
setsid                    or die "Can't start a new session: $!";

system("java YourClassName");

Здесь мы меняем текущую директорию на корневую "/", так как текущая директория может быть удалена до завершения программы. Затем перенаправляем потоки ввода-вывода в /dev/null. Порождаем новый дочерний процеcс через fork и завершаем отцовский процесс. Таким образом получаем не связанный с терминалом процесс в котором мы создаем новую сессию и запускаем нашу Java-программу.
Автор: Sun






Просмотров: 5933

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную