● Server & Claude Code
status=203/EXEC means the program never started
The shell only says Job for the unit failed because the control process exited with error code. It does not say 203/EXEC. The journal does. On systemd 255.4 that code means ExecStart never ran. I hit it four ways on 2026-10-19, and two nearby codes that are easy to call 203 when they are not. The units lived under /run and were removed.
Four ways to get status=203/EXEC
| What the unit had | systemd-analyze verify | Journal |
|---|---|---|
Absolute ExecStart path, file not there | Exit 1. not executable: No such file or directory | status=203/EXEC. The journal did not repeat the errno. |
File name with no slash. Environment=PATH listed a directory that contained that file, mode 755 | Exit 1. not executable: No such file or directory | status=203/EXEC. PATH was not used to find ExecStart. |
Absolute path to a copy of /bin/true, mode 644 | Exit 1. not executable: Permission denied | status=203/EXEC. The journal did not say permission denied. |
Absolute path to a mode-755 script whose first line was #!/no/such/interpreter | Exit 0. No output. | Failed to execute the script, No such file or directory, then status=203/EXEC. The script file was there. The interpreter was not. The journal named the script, not the interpreter. |
Each of those starts ended Result=exit-code, ExecMainStatus=203, ActiveState=failed. A relative ExecStart (./ plus a file name) is a different failure. Verify exits 1 and says Neither a valid executable name nor an absolute path, then Unit configuration has fatal error, unit will not be started. After systemctl start, Result=success, ExecMainStatus=0, ActiveState=inactive. That is not status=203/EXEC. The start command itself still exited 1.
status=217/USER is not 203
User= set to a name getent passwd does not find, ExecStart=/bin/true. Verify exits 0 and prints nothing. The journal says Failed to determine user credentials: No such process, then status=217/USER, then Failed with result 'exit-code'. ExecMainStatus=217. The words are "No such process", not "no such user".
status=200/CHDIR is not 203
WorkingDirectory= set to a directory that was not there, ExecStart=/bin/true. Verify exits 0 and prints nothing. The journal says Changing to the requested working directory failed: No such file or directory, then status=200/CHDIR. ExecMainStatus=200.
status=1/FAILURE means the program did start
/bin/false with Restart=always logs status=1/FAILURE on each crash. That is the process exiting, which is the opposite of 203. With RestartSec=1 the journal reached restart counter is at 5, then Start request repeated too quickly. With RestartSec=10 the same unit, stopped during the third start, had not printed that sentence. Both runs are on the start-limit note.
The remote-control unit already running on this server was ActiveState=active, Result=success, NRestarts=0, ExecMainStatus=0, with StandardInput=null and StartLimitIntervalUSec=0. Its unit file has no script wrapper. I did not start it, and I did not start claude. An active unit is not evidence about a fresh install, and it is not a 203.
What to change
ExecStart has to be an absolute path, and test -x on that path has to succeed as the service user. getent passwd has to find User=. The working directory has to exist. Environment=PATH is for programs that process starts. It did not locate ExecStart in the run above.
systemd-analyze verify is the check that caught the missing file, the bare name, the mode-644 file, and the relative path. It exited 0 for the bad shebang, the missing user, and the missing directory, and all three failed at start. The free lockout check flags StartLimitIntervalSec under [Service]. It does not look at whether the binary, the user, or the directory exists.
Once the path is real, the remote-control unit with StartLimitIntervalSec in [Unit] is the Agent Ops Kit ($19). The same unit is on the kit page. The file does not create a binary that is not installed. The remote-control note and the Cursor worker note are the units those paths belong in.
Need a VPS to try this on? Everything here was tested on a DigitalOcean Ubuntu 24.04 droplet: get one on DigitalOcean. The DigitalOcean link pays the site owner account credit, not cash. Any other affiliate link may pay a commission. Your price is the same. Disclosure.