Работаем над установкой и запуском FreeRADIUS и возникают проблемы с добавлением в systemd.
Автономный запуск с помощью radiusd -X работает нормально, и все пользовательские конфигурации остаются неизменными. Использование модуля freetds для подключения к серверу MS SQL ...
Во время компиляции я установил для него использование «--with-systemd», но он не добавлял автоматически запись службы и не создавал файл * .service, который я могу найти.
Я безуспешно пытался воспользоваться одним из найденных в Интернете. Это приводит к ошибке тайм-аута.
[Unit]
Description=FreeRADIUS high performance RADIUS server.
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/radiusd/radiusd.pid
ExecStartPre=-/bin/chown -R freerad:freerad /var/run/radiusd
ExecStartPre=/usr/local/sbin/radiusd -C
ExecStart=/usr/local/sbin/radiusd -d /usr/local/etc/raddb
ExecReload=/usr/local/sbin/radiusd -C
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Кто-нибудь успешно добавил в systemd скомпилированную версию FreeRADIUS (3.0)? Если да, не могли бы вы дать какие-нибудь рекомендации, как заставить это работать?
Спасибо.
systemctl status freeradius
. Что это показало?/etc/systemd/system/freeradius.service
и меняем пути. Это будет отправная точка.# /lib/systemd/system/freeradius.service
[Unit]
Description=FreeRADIUS multi-protocol policy server
After=network.target
Documentation=man:radiusd(8) man:radiusd.conf(5) http://wiki.freeradius.org/ http://networkradius.com/doc/
[Service]
Type=forking
PIDFile=/run/freeradius/freeradius.pid
EnvironmentFile=-/etc/default/freeradius
ExecStartPre=/usr/sbin/freeradius $FREERADIUS_OPTIONS -Cxm -lstdout
ExecStart=/usr/sbin/freeradius $FREERADIUS_OPTIONS
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Поддержка systemd в freeradius включает в себя некоторые функции:
Лучший подход:
-f
опция свободного радиуса для предотвращения разветвления. Если вы используете служебный модуль flle по ссылке выше, вам следует добавить -f
в /etc/sysconfig/radiusd
. Некоторое обсуждение этого вы можете прочитать Вот. Разветвление - это устаревший способ деамонизации. Сегодня демонизацию при запуске программы можно делегировать специальным программам, таким как systemd или start-stop-daemon.Type=notify
в служебном разделе файла объекта.