[systemd-devel] nfs dependency in mysqld.service (best option)?

Gary Artim gartim at gmail.com
Tue Mar 19 15:13:19 PDT 2013


I upgraded fedora  last weekend to fc18 from fc17, issue:

my mysql /mysqlbin/mysql-bin.index a configuration option, is on a NFS
directory. Seem that mysqld.service fails because the NFS is not
completely up. I can start it right after the boot completes/nfs clearly
mounted. The config for the services files are vanilla:

[root]# cat /usr/lib/systemd/system/mysqld.service
# It's not recommended to modify this file in-place, because it will be
# overwritten during package upgrades.  If you want to customize, the
# best way is to create a file "/etc/systemd/system/mysqld.service",
# containing
#       .include /lib/systemd/system/mysqld.service
#       ...make your changes here...
# For more info about custom unit files, see
# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F

# For example, if you want to increase mysql's open-files-limit to 10000,
# you need to increase systemd's LimitNOFILE setting, so create a file named
# "/etc/systemd/system/mysqld.service" containing:
#       .include /lib/systemd/system/mysqld.service
#       [Service]
#       LimitNOFILE=10000

# Note: in F-17 and beyond, /usr/lib/... is recommended in the .include line
# though /lib/... will still work.

[Unit]
Description=MySQL database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql

ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
ExecStart=/usr/bin/mysqld_safe --basedir=/usr
ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target



Thinking I should modify to add a "After=" for nfs.target, any one
think this is the wrong approach or alternate options, I'd do
something like:

[root]# cat mysqld.service
# "/etc/systemd/system/mysqld.service" containing:
.include /lib/systemd/system/mysqld.service
[Unit]
        Description=MySQL database server
        After=syslog.target
        After=network.target
        After=nfs.target


thanks for any feedback!


More information about the systemd-devel mailing list