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/services
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
процесс, запущенный с предыдущей попытки перед продолжением.