| Service binary with a library | any* | *for the `direct` method it's necessary to add `Environment=LD_LIBRARY_PATH=...` to the ISU package directory |
| Service binary performing mounts that must be visible by the rest of the system | direct | Any service that creates system-visible mounts (for other services or applications) should not be run in an isolated environment |
| Service performing privileged kernel operations | direct, systemd | Some services need to manage kernel objects that are not allowed when service is running in the user namespace (used by `isu-sandbox`) |
-| Double-forking service | direct, systemd | `isu-sandbox` is not able to track services that double-forks, resulting in multiple services being started one after another |
+| Double-forking service | any* | *bear in mind that `isu-sandbox` is not able to track services that double-forks, resulting in multiple services being started one after another unless the service uses a PID file where it stores its PID and the service file uses `PIDFile=`|
Please consult the following real-life use cases to understand how the method was chosen.
|connman | systemd | Requires appropriate permissions to perform a privileged system-wide `ioctl` bringing up a network interface |
|enlightenment | isu-sandbox | Works properly |
|sensord | isu-sandbox | Works properly |
-|muse-server | direct | Doesn't work in the `isu-sandbox` because the service executes the `fork()` system call and the parent (`isu-sandbox`) terminates|
+|muse-server | isu-sandbox | Works properly |
|pulseaudio | isu-sandbox | Works properly |
### Build ISU Package