我在乱搞FreeRADIUS和MySQL (MariaDB) ,似乎FreeRADIUS服务无法在启动时正常启动。 但它使用root用户或以debugging模式( radiusd -X )开始正常工作,并工作得很好! debugging模式显示没有错误。
systemctl命令显示radiusd.service未能启动。
/ var / log / messages输出:
Aug 21 15:52:29 nexus-test systemd: Starting The Apache HTTP Server... Aug 21 15:52:29 nexus-test systemd: Starting MariaDB database server... Aug 21 15:52:29 nexus-test systemd: Starting FreeRADIUS high performance RADIUS server.... Aug 21 15:52:29 nexus-test systemd: Started OpenSSH server daemon. Aug 21 15:52:29 nexus-test mysqld_safe: 140821 15:52:29 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Aug 21 15:52:29 nexus-test mysqld_safe: 140821 15:52:29 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Aug 21 15:52:30 nexus-test systemd: Started Postfix Mail Transport Agent. Aug 21 15:52:30 nexus-test avahi-daemon[604]: Registering new address record for fe80::250:56ff:fe85:e4af on eth0.*. Aug 21 15:52:30 nexus-test systemd: radiusd.service: control process exited, code=exited status=1 Aug 21 15:52:30 nexus-test systemd: Failed to start FreeRADIUS high performance RADIUS server.. Aug 21 15:52:30 nexus-test systemd: Unit radiusd.service entered failed state. Aug 21 15:52:31 nexus-test kdumpctl: kexec: loaded kdump kernel Aug 21 15:52:31 nexus-test kdumpctl: Starting kdump: [OK] Aug 21 15:52:31 nexus-test systemd: Started Crash recovery kernel arming. Aug 21 15:52:31 nexus-test systemd: Started The Apache HTTP Server. Aug 21 15:52:31 nexus-test systemd: Started MariaDB database server.
/var/log/radius/radius.log输出:
Thu Aug 21 15:24:16 2014 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked Thu Aug 21 15:24:16 2014 : Info: rlm_sql (sql): Attempting to connect to database "radius" Thu Aug 21 15:24:16 2014 : Info: rlm_sql (sql): Opening additional connection (0) Thu Aug 21 15:24:16 2014 : Error: rlm_sql_mysql: Couldn't connect socket to MySQL server radius@localhost:radius Thu Aug 21 15:24:16 2014 : Error: rlm_sql_mysql: Mysql error 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Thu Aug 21 15:24:16 2014 : Error: rlm_sql (sql): Opening connection failed (0) Thu Aug 21 15:24:16 2014 : Error: /etc/raddb/mods-enabled/sql[47]: Instantiation failed for module "sql"
看到这个之后,我试图复制这个问题,杀死了mariadb.service并开始再次运行debugging模式。 它会吐出与radius.log相同的问题。
我试过禁用iptables和firewalld并重新启动,但没有运气:
systemctl disable iptables systemctl disable firewalld
所以也许问题出在启动顺序或者某种types的延迟上。 FreeRADIUS的SQL模块可能无法连接到尚未启动的MariaDB? 如果它,我该如何解决这个问题?
在RHEL / CENTOS的早期版本中,我知道你很容易在rc.d或者现在的IDK中看到服务启动顺序。 我是新来的这个花哨的“systemd”,“systemctl”,“firewalld”东西Centos 7介绍很抱歉,我有点困惑。 另外这个新的FreeRADIUS 3结构…
PS。 MariaDB在启动时启用,FR DBconfiguration中的凭据是正确的
有点更新:
cat /etc/systemd/system/multi-user.target.wants/radiusd.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 radiusd.radiusd /var/run/radiusd ExecStartPre=/usr/sbin/radiusd -C ExecStart=/usr/sbin/radiusd -d /etc/raddb ExecReload=/usr/sbin/radiusd -C ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
谢谢, dawud ,你把我推向了正确的方向。 我必须做的是在radiusd.service之后使radiusd.service开始。
我激发了/etc/systemd/system/multi-user.target.wants/radiusd.service vim ,并在[Unit]部分添加了一行:
After=mariadb.service
所以看起来像这样:
[Unit] Description=FreeRADIUS high performance RADIUS server. After=syslog.target network.target After=mariadb.service
重新启动后,FreeRADIUS开始就好了。
这个资源也帮了我一些忙。
您将FreeRADIUS设置为连接到本地MySQL服务器,但该服务器未运行。 启动服务器,然后重试。