Назад | Перейти на главную страницу

Linux RPC удалить регистрацию

есть хорошо проработанная программа (демон), работающая на CentOS-5.4, которая сама регистрирует RPC как программу 191299 версии 10.

После незапланированной остановки программы регистрация RPC все еще остается, поэтому программа не может быть перезапущена из-за попытки отмены регистрации, вызывающей ошибку:

# rpcinfo -d 191299 10    
rpcinfo: Could not delete registration for prog 191299 version 10    

service portmap restart тоже не помогло, несмотря на успешный перезапуск.

Подскажите, пожалуйста, как заставить удалить регистрацию RPC?

Большое спасибо!

Не использовать перезапуск карты порта службы. Он сохранил текущее состояние карты порта перед остановкой и восстанавливает его после запуска. Лучше сделай стоп и Начало. Или

# service portmap stop
# rm -f /var/run/portmap.state
# service portmap start

В CentOS 6 rpcbind (в режиме по умолчанию) позволяет создавать сопоставление от любого пользователя через локальный хост, но позволяет удалить сопоставление только в том случае, если вы являетесь его владельцем или являетесь пользователем root. Если привязка создается через UDP или TCP, то rpcbind не может аутентифицировать пользователя, который делает запрос на изменение / удаление, поэтому он отклоняется.

Вызов rpcinfo -d как root должен удалить отображение. В CentOS 6 сопоставления RPC также очищаются во время перезагрузки системы (по крайней мере, при нашей установке).

Если порт привязан с использованием сокетов UNIX (/var/run/rpcbind.sock), то запрашивающая сторона сможет пройти аутентификацию, и вы будете показаны как владелец в результатах rpcinfo. rpcinfo -d затем будет работать, если вызывается с использованием той же учетной записи пользователя, которая сделала привязку.