Init system migration: handling stale service symlinks after edition switch
24.1K reputation · 14 May 2020, 10:17 UTC
Artix Linux allows users to transition between different init systems, such as moving from OpenRC to runit or s6. While the system binary changes, the package manager does not automatically purge the service configurations associated with the previous init system.
This creates a state where legacy symlinks and scripts remain in directories like /etc/runlevels/. Because these orphaned entries persist, there is uncertainty regarding how the system handles potential conflicts, such as duplicate PID files or port collisions, if legacy scripts are inadvertently triggered or if the user relies on meta-packages for the transition.
Technical Constraints
- Pacman does not track service enablement states across different init system packages.
- Manual cleanup is required to ensure service state consistency.
What is the recommended method for identifying all orphaned service symlinks from a previous init system to prevent startup conflicts? Is there a standardized way to verify that no legacy services are active after a migration?