You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that on some of my embedded systems, AdGuardHome service always fails to start.
These embedded systems boot up to ram rootfs from image to make sure they always boot to the same working state quickly. AdGuardHome's executable is on slower mounted writable devices (from a separate flash / external USB drive / NFS share, might be mounted by differnet services later after system is fully running), I found
"ConditionFileIsExecutable=/path/to/AdGuardHome"
is the reason that stops AdGuardHome service from starting, because AdGuardHome service is started before the executable file is ready.
It seems like if ExecStart=/path/to/AdGuardHome fails due to /path/to/AdGuardHome does not exist, systemd will try to restart the AdGuardHome service later and succeed when /path/to/AdGuardHome exists eventually.
However, if ConditionFileIsExecutable=/path/to/AdGuardHome fails, systemd won't try to restart the AdGuardHome service.
I am wondering if we really need "ConditionFileIsExecutable=/path/to/AdGuardHome" when we have "Restart=always" and "RestartSec=10" to make sure AdGuardHome service to start?
I looked other services on my ubuntu services and debian services, there's no other 3rd party services use ConditionFileIsExecutable=
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I noticed that on some of my embedded systems, AdGuardHome service always fails to start.
These embedded systems boot up to ram rootfs from image to make sure they always boot to the same working state quickly. AdGuardHome's executable is on slower mounted writable devices (from a separate flash / external USB drive / NFS share, might be mounted by differnet services later after system is fully running), I found
"ConditionFileIsExecutable=/path/to/AdGuardHome"
is the reason that stops AdGuardHome service from starting, because AdGuardHome service is started before the executable file is ready.
It seems like if ExecStart=/path/to/AdGuardHome fails due to /path/to/AdGuardHome does not exist, systemd will try to restart the AdGuardHome service later and succeed when /path/to/AdGuardHome exists eventually.
However, if ConditionFileIsExecutable=/path/to/AdGuardHome fails, systemd won't try to restart the AdGuardHome service.
I am wondering if we really need "ConditionFileIsExecutable=/path/to/AdGuardHome" when we have "Restart=always" and "RestartSec=10" to make sure AdGuardHome service to start?
I looked other services on my ubuntu services and debian services, there's no other 3rd party services use ConditionFileIsExecutable=
Is it really necessary?
Beta Was this translation helpful? Give feedback.
All reactions