It seems like each of these would run monerod
in the background. How does the behavior differ? Under what circumstances might one choose --detached
over --non-interactive
or vice versa?
1 Answer
Only --detach
will run the daemon in the background. --non-interactive
will run in the foreground but the daemon will not require a Terminal for input.
Quoting from monerodocs monerod reference:
--detach
Go to background (decouple from the terminal). This is useful for long-running / server scenarios. Typically, you will also want to manage monerod daemon with systemd or similar. By default monerod runs in a foreground.
--non-interactive
Do not require tty in a foreground mode. Helpful when running in a container. By default monerod runs in a foreground and opens stdin for reading. This breaks containerization because no tty gets assigned and monerod process crashes. You can make it run in a background with --detach but this is inconvenient in a containerized environment because the canonical usage is that the container waits on the main process to exist (forking makes things more complicated).
-
1Do you know if commands can be sent to it while it's in non-interactive mode? When just "detached,"
monerod status
will return the same as would print out if you enterstatus
in a normal/attached daemon window. I haven't been able to figure out how to pass commands successfully to monerod when it's in non-interactive mode though. Commented Feb 22, 2020 at 17:09 -