У меня есть сервер radiusd на виртуальной машине, он уже настроен и работает, когда я запускаю "radiusd -X", также известный как режим отладки. Моя единственная проблема в том, что когда я пытаюсь запустить его как службу, он терпит неудачу ...
Вот ошибка, которую я получил в журналах,
«Сб, 28 июня, 17:51:12 2014: ошибка: сбой привязки к интерфейсу eth1: операция не разрешена, суббота, 28 июня, 17:51:12 2014: ошибка: /etc/raddb/radiusd.conf[240]: ошибка привязки к порту для порта 0.0.0.0 1812 "
Действительно, там говорится, что операция не разрешена, но я не знал, что Linux может вообще запретить привязку к интерфейсу ... Также порт (1812) не является привилегированным портом. Моя машина работает под управлением Scientific Linux 6.5 (вилка RHEL). Я уже пытался отключить selinux, но это не помогло. В любом случае я также отключил пользовательский переключатель в radiusd.conf, поэтому radiusd запускается как root, но у меня все еще есть эта операция, не разрешенная ошибка. Это снова странно, это только доказывает, что служба не запускает radiusd как root, но теперь "radiusd -X" и ps faux показывает мне, что radiusd работает как root. Почему тот простой факт, что я использую служебный файл, НЕ запускает его от имени пользователя root?
Вот функция запуска служебного файла.
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --pidfile $pidfile $exec -d $config_dir
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
Любая помощь будет принята с благодарностью :) Спасибо.
РЕДАКТИРОВАТЬ: Я решил свою проблему, переписав файлы служб минимальным образом, но это все еще не лучший подход ...
start() {
echo "Starting radiusd"
radiusd
}
stop() {
echo "Stopping radiusd"
killall radiusd
echo "done"
}