Abordagem sugerida:
- Use
systemctl isolatepara iniciar cada um dos 3 alvos. Conforme documentado emman systemctl, esse é um comando poderoso: "O comando isolate interromperá imediatamente os processos que não estão habilitados na nova unidade, possivelmente incluindo o ambiente gráfico ou terminal que você está usando atualmente." Estruture suas dependências de destino com cuidado! Possivelmente incluamulti-user.targetcomo dependência. - Certifique-se de que o primeiro serviço que o destino inicia seja um especial que verifique se os outros destinos não estão ativos. Isso é contra um administrador que acidentalmente "inicia" um dos seus destinos personalizados em vez de "isolá-lo". Você usa
/bin/systemctl is-active your.targetpara verificar rapidamente se ele retorna "ativo" ou não.