LIFE — starting and stopping
Raised around the lifecycle of a running stack. See starting and stopping.
| Code | Severity | Exit | What it means | What to do |
|---|---|---|---|---|
LIFE-1 | error | 4 | A service never reached a state that starting could accept, so the run did not finish starting. | Look at what the service said, then start it again: lemonfiber logs <service>. |
LIFE-2 | error | 1 | Stopping would take services out from under another form that is still running. Nothing was stopped. | Stop both if neither is wanted, or leave both up. A service two forms reach belongs to whichever you are using. |
LIFE-3 | error | 1 | Another lemonfiber run is already working on this stack, so this one stopped before doing anything. Two runs issuing commands about the same containers leave the stack in a state neither asked for. | Wait for the other run to finish, then run this again. If you are sure that run is gone, --force takes the stack from it. |
LIFE-4 | error | 1 | Fetching images is switched off, so nothing was fetched. LEMONFIBER_REACH_REGISTRY is off, so this machine asks no registry for anything: a start uses the images already here, and a service whose image is missing will not start. | Turn fetching back on with lemonfiber config set LEMONFIBER_REACH_REGISTRY on, then run this again. |
LIFE-5 | error | 1 | The data location is not there, so nothing was started. Starting over a location that is not mounted does not fail — the engine makes the directory on whatever is underneath the mount point, usually the system disk, and the stack then files a second library into it while the real one is offline. | Connect the drive or mount holding the data location, then start again. If it has moved for good, run setup and choose where it is now. |
LIFE-6 | error | 1 | A remote Docker context is in force, and the location the stack mounts is not on that machine. It is on this one, which is why the path looks right. Nothing was started, because Docker would have made an empty directory in its place and the services would have come up with nothing in them. | Make the location on that machine, or point lemonfiber at one that is there: lemonfiber config set DATA_ROOT <path on that machine>. |
LIFE-7 | error | 1 | lemonfiber runs in a container, and a path the stack mounts is somewhere else on the machine underneath it, or not on that machine at all. Compose resolves every path the stack mounts on the machine, so the engine would mount whatever the machine keeps there, or make an empty directory in its place. Nothing was started; the message names both paths. | Mount the directory at the same path inside the container as on the machine, and point lemonfiber at that path. |
LIFE-8 | error | 1 | lemonfiber runs in a container and cannot reach Docker from inside it. It drives the stack through the host's Docker socket, which the templates mount at /var/run/docker.sock, and nothing answered there. Nothing was started. | Mount the host's Docker socket into the container at /var/run/docker.sock, as the templates do. |
LIFE-9 | error | 1 | The Docker lemonfiber reaches from its container is not the one running that container: the engine has no container by its name. Which paths on the machine stand behind the paths the container sees cannot be asked, so Compose would resolve them somewhere nobody checked. Nothing was started. | Mount the socket of the engine running this container at /var/run/docker.sock. |
LIFE-10 | warning | 1 | What was agreed to is not what a restart would restart now. A fresh look names other services — one added, removed or renamed since the restart was rehearsed — so nothing was restarted. | Rehearse the restart again, and answer the offer it gives now. |
What each severity and each exit means is on every error by code, beside every other family.