mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
When we call safe_fork() with the first argument set (process name), we call rename_process() that zeroes out saved argv (that was saved by save_argc_argv() in the main func defined by DEFINE_MAIN_FUNC()). In this case this means that with --accept both the target executable name and its arguments will be empty strings: ``` $ systemd-socket-activate --accept --listen 1111 cat & Listening on [::]:1111 as 3. $ curl localhost:1111 Communication attempt on fd 3. Connection from 127.0.0.1:52948 to [::ffff:127.0.0.1]:1111 Spawned cat (cat) as PID 10576. Execing () Failed to execp (): No such file or directory Child 10576 died with code 1 curl: (56) Recv failure: Connection reset by peer ``` Let's make a copy of the necessary arguments beforehand and use it instead to fix this.