Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Конфигурирование inetd Запускаться rmid

На Операционной системе Соляриса (Солярис ОС), демон Интернет сервисов inetd обеспечивает альтернативу запуску служб во время начальной загрузки системы. Этот демон, серверный процесс для интернет-служб стандарта, может быть сконфигурирован, чтобы запустить службы по требованию. Для получения дополнительной информации на демоне Интернет сервисов, см. Солярис ОС inetd(1M) страница справочника.

С J2SE (ТМ) 5.0 выпусков, inetd может быть сконфигурирован, чтобы запустить Java демон активации RMI rmid по требованию. В этом случае, rmid не должен быть запущен во время начальной загрузки или запущен вручную. Вместо этого rmid будет запущен, когда клиент пытается соединиться с этим, такой как, чтобы активировать объект.

Отметьте: Если прерываемые службы регистрируются в rmid, rmid должен быть запущен в типе начальной загрузки системы (не inetd) так, чтобы прерываемые службы всегда работали, когда система произошла.

Сконфигурировать inetd запускаться rmid, Вы должны будете добавить запись в каждый из двух конфигурационных файлов это inetd использование, /etc/inetd.conf и /etc/services. Редактирование этих файлов требует корневого доступа к машине это rmid будет работать.

После inetd был реконфигурирован, следует протестировать свою конфигурацию, чтобы удостовериться, что она работает должным образом.

У этого учебного руководства есть следующие шаги:


Сконфигурировать /etc/inetd.conf

/etc/inetd.conf конфигурационный файл содержит записи для служб, которые будут запущены когда inetd получает запрос по сокету. Для получения дополнительной информации на формате этого конфигурационного файла см. Солярис ОС inetd.conf(4) страница справочника.

Сконфигурировать inetd запускаться rmid, добавьте следующую запись в /etc/inetd.conf конфигурационный файл (требует корневого доступа к машине):

rmid stream tcp wait nobody jreHome/bin/rmid  \
     rmid -log logDir/rmid.log rmidOptions
где jreHome является путем к установленному JRE, logDir является каталогом для файла журнала, и rmidOptions является любыми другими опциями для rmid (например, инициализации свойства). Когда rmid запускается inetd -log опция должна быть определена, и -port опция не должна быть определена, так как порт получается из /etc/services конфигурация.

Если rmid потребности, которые будут выполнены как пользователь кроме nobody, замена nobody выше того, с идентификатором пользователя, под который rmid должен работать.

Сконфигурировать /etc/services

Затем, rmid потребности, которые будут перечислены как сервис в /etc/services конфигурационный файл. Для получения дополнительной информации на формате этого конфигурационного файла см. Солярис ОС services(4) страница справочника.

Перечислять rmid как сервис добавьте следующую запись в /etc/services конфигурационный файл (требует корневого доступа к машине):

rmid        port/tcp

где порт является номером порта для ActivationSystem и Activator удаленные объекты это rmid экспорт. Этот номер порта обычно 1098, но другой номер порта может использоваться пока клиенты, и activatable службы определяют системное свойство java.rmi.activation.port к тому порту.

Сила inetd считать его новую конфигурацию

Теперь, когда конфигурация была изменена, inetd потребности считать новую конфигурацию так, чтобы это могло слушать на соответствующих портах для служб, которые конфигурируются.

Но сначала, важно удостовериться это rmid уже не работает. Чтобы сделать это, выполните следующую команду:

% ps -ef | grep rmid

Если вышеупомянутая команда не распечатывает информацию для выполнения rmid процесс, тогда rmid не работает. Если это сделает, то Вы должны будете завершить работу rmid сначала перед продолжением.

Затем, inetd потребности считать его новую конфигурацию. Вызвать inetd перечитывать его конфигурацию, выполнение inetd процесс должен быть отправлен сигнал зависания. Во-первых, найдите ID процесса для выполнения inetd процесс, выполняя следующую команду:

% ps -ef | grep inetd

который распечатает что-то вроде этого:

root   171     1  0   Sep 30 ?        0:02 /usr/sbin/inetd -s

В этом примере, ID процесса для inetd 171. Теперь, inetd процесс может быть отправлен сигнал зависания, выполняя следующую команду, и предоставляя ID процесса (требует корневого доступа):

% kill -HUP 171

Теперь, inetd все устанавливается запуститься rmid когда программа пытается соединиться с портом, сконфигурированным выше.

Протестируйте свою конфигурацию

Протестировать это inetd конфигурируется должным образом, можно выполнить простую программу, которая ищет ActivationSystem который, поочередно, вызовет inetd запускаться rmid если конфигурация корректна.

Следующее является простой программой, чтобы искать ActivationSystem на порту, предоставленном как значение java.rmi.activation.port системное свойство:

package example.inetd;

import java.rmi.activation.ActivationSystem;
import java.rmi.activation.ActivationGroup;

public class GetActivationSystem {

    public static void main(String[] args) throws Exception {

        ActivationSystem system = ActivationGroup.getSystem();
        System.err.println("ActivationSystem = " + system);
    }
}

Скомпилируйте и выполните эту программу следующим образом:

% javac -d classDir GetActivationSystem.java
% java -classpath classDir -Djava.rmi.activation.port=port 
example.inetd.GetActivationSystem
где classDir является путем class для этого примера class, и порт является портом для ActivationSystem сконфигурированный для rmid в /etc/services файл.

Если программа распечатывает ActivationSystem успешно тогда rmid был запущен inetd.

Если программа или подвешивает или печатает трассировку исключения, проверьте выходной файл, произведенный rmid. Когда rmid запускается inetd, любой вывод, записанный System.err пишется файлу, расположенному в каталоге, определенном свойством java.io.tmpdir, обычно /var/tmp на Солярисе ОС. Выходной файл снабжается префиксом, "rmid-допускают-ошибку", и имеет суффикс ".tmp". Имя файла также содержит другие символы (обычно числа) промежуточный, чтобы сохранить имя файла уникальным.

Если rmid запускает успешно от inetd, выходной файл должен содержать текст, подобный следующему (без предупреждающих сообщений или сообщений об ошибках):

Tue Sep 30 13:07:38 EDT 2003
rmid startup with inherited channel: sun.nio.ch.ServerSocketChannelImpl[/192.0.2.120:1098]

Если файл не существует, вышеупомянутый текст не находится в файле, или дополнительный вывод ошибок находится в файле, то перепроверьте конфигурацию. После изменения inetd конфигурация, не забудьте передаваться inetd сигнал зависания так, чтобы это перечитало свою измененную конфигурацию, и не забыло завершать любого rmid процесс, запущенный с предыдущей попытки перед продолжением.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами