It is, the process is quite elaborate. Snapd runs fc-cache-* binary from the core snap by directly invoking ld.so (the interpreter) from the core snap, passing library path arguments that ensure that library dependencies come from core and lastly the binary itself. You can see it in action here: https://github.com/snapcore/snapd/blob/d4a45e9771e535da9bbe82be7c12e537d83e58cd/cmd/cmdutil/cmdutil.go#L100-L139
The side effect is that argv[0] is set to ld.so, so in ps output it looks like as if ld.so is running.
It is, the process is quite elaborate. Snapd runs fc-cache-* binary from the core snap by directly invoking ld.so (the interpreter) from the core snap, passing library path arguments that ensure that library dependencies come from core and lastly the binary itself. You can see it in action here: https:/ /github. com/snapcore/ snapd/blob/ d4a45e9771e535d a9bbe82be7c12e5 37d83e58cd/ cmd/cmdutil/ cmdutil. go#L100- L139
The side effect is that argv[0] is set to ld.so, so in ps output it looks like as if ld.so is running.