Good day all. I have a service that requires a disk, which is mounted via NFS.
I've used data.mount to mount the NFS as follows: [Unit] Description=Mount Data [Mount] What=192.168.60.10:/mnt/ta_data Where=/data Type=nfs Options=vers=4,_netdev,auto [Install] WantedBy=multi-user.target and then the service is managed with mission.service: [Unit] Description=Mission Control After=network.target data.mount Wants=network.target [Service] Type=simple User=oxbotica ExecStart=/opt/mission-bin/start-web-server.sh Restart=on-failure [Install] WantedBy=multi-user.target Since mission.service requires data.mount I added: Requires=data.mount to mission.service [Unit] This works perfectly, except when the NFS server is not available. This does happen from time to time when the two machines are started at the same time (these are not permanently running machines), then I need the server the units are running on to wait for the NFS server. To do this I added: TimeoutSec=5m to the [Mount] section. While starting data.mount, this works correctly, as it waits for the NFS share to become available before it mounts.. However, starting mission.service without starting data.mount, it correctly requires data.mount, but mission.service executes anyway. I'm not entirely sure why this happens. When I disconnect the NFS share from the network and run data.mount, it gives the expected output of: Sep 10 14:26:31 dcv1uk-mvc rpc.gssd[1081]: ERROR: unable to resolve 192.168.60.10 to hostname: Name or service not known Sep 10 14:26:31 device01 rpc.gssd[1081]: ERROR: failed to parse nfs/clnt3f/info Sep 10 14:26:31 device01 rpc.gssd[1081]: ERROR: unable to resolve 192.168.60.10 to hostname: Name or service not known Sep 10 14:26:31 device01 rpc.gssd[1081]: ERROR: failed to parse nfs/clnt3f/info until the NFS share is reconnected and then: Sep 10 14:26:51 device01 systemd[1]: Mounted Mount GTA on Data. When I start mission.services I get: device01 systemd[1]: Started Mission Execution Manager. device01 systemd[1]: missioncontrol_execution_manager.service: Main process exited, code=exited, status=1/FAILURE device01 systemd[1]: missioncontrol_execution_manager.service: Failed with result 'exit-code'. device01 systemd[1]: missioncontrol_execution_manager.service: Scheduled restart job, restart counter is at 5. device01 systemd[1]: Stopped Mission Execution Manager. device01 systemd[1]: missioncontrol_execution_manager.service: Start request repeated too quickly. device01 systemd[1]: missioncontrol_execution_manager.service: Failed with result 'exit-code'. device01 systemd[1]: Failed to start Mission Execution Manager. device01 rpc.gssd[1081]: ERROR: unable to resolve 192.168.60.10 to hostname: Name or service not known device01 rpc.gssd[1081]: ERROR: failed to parse nfs/clnt51/info device01 rpc.gssd[1081]: ERROR: unable to resolve 192.168.60.10 to hostname: Name or service not known device01 rpc.gssd[1081]: ERROR: failed to parse nfs/clnt52/info device01 rpc.gssd[1081]: ERROR: unable to resolve 192.168.60.10 to hostname: Name or service not known device01 rpc.gssd[1081]: ERROR: failed to parse nfs/clnt53/info Am I misunderstanding how this is supposed to work ? Kind regards Henti