Abordagem sugerida:
- Use
systemctl isolate
para 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.target
como 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.target
para verificar rapidamente se ele retorna "ativo" ou não.