Como outros já observaram aqui, em teoria, isso não deve afetar o usuário final não técnico - e, em teoria, não há diferença entre teoria e prática, mas na prática existe.
Esclarecimento
Acho que poucas coisas postadas aqui precisam de alguns esclarecimentos:
É um sistema init, não algo com o qual os usuários interagem tradicionalmente.
Foi o caso do SysV init e do Upstart, mas não é mais o caso do systemd. Ele faz muitas coisas com as quais os usuários tradicionalmente interagem:
Ele deve substituir completamente a funcionalidade fornecida pelo Upstart - e fazer algumas coisas extras
Duas coisas a esclarecer - primeiro sobre a substituição completa do Upstart:
Nenhum script de inicialização do SysV
Um dos problemas que as pessoas têm com o systemd é que ele não executa scripts de inicialização do SysV. Portanto, há um exemplo de que ele não substitui completamente a funcionalidade fornecida pelo Upstart.
Isso é algo em que podemos confiar há mais de 30 anos e, tradicionalmente, você escrevia scripts init do SysV para portabilidade máxima sem se repetir (escrevendo várias versões dos mesmos scripts), o que não é mais o caso.
Isso não deve ser um problema ao usar apenas pacotes de repositórios oficiais, porque presumivelmente todos os pacotes que costumavam ter scripts SysV init ou Upstart precisariam ter seus scripts reescritos antes de serem empacotados.
Será apenas um problema para as pessoas que usam qualquer software personalizado ou de terceiros que tenha seus scripts init escritos para o SysV init ou para o Upstart e esses precisarão dos scripts init reescritos antes de atualizar para um sistema com systemd (ou obter o iniciante instalado, que também é uma opção , ou migra para um sistema que não usa systemd).
Há systemd-sysv-generator que deve converter automaticamente scripts de inicialização do SysV em scripts de systemd, mas existem alguns erros e uma longa lista de incompatibilidades explícitas .
Agora, o segundo esclarecimento - sobre essas poucas coisas extras:
Poucas coisas extras
Essas "poucas coisas extras" que o systemd abordará - de acordo com A Perspective para systemd - O que foi alcançado e o que está por vir apresentado por Lennart Poettering em 2014 no GNOME.asia - são as seguintes:
- sistema init
- registro de diário
- gerenciamento de login
- gerenciamento de dispositivo
- gerenciamento de arquivos temporário e volátil
- registro de formato binário
- salvar / restaurar luz de fundo
- salvar / restaurar rfkill
- gráfico de inicialização
- Leia adiante
- configuração de armazenamento criptografado
- Descoberta de partição EFI / GPT
- registro de máquina virtual / contêiner
- gerenciamento de contêineres
- gerenciamento de nome de host
- gerenciamento de localidade
- gerenciamento de tempo
- manejo aleatório de sementes
- gerenciamento de variáveis sysctl
- gerenciamento de console
- introspecção
- descoberta automática
- plug and play
- Gerenciamento de rede
- systemd-networkd
- Cache DNS
- respondedor mDNS
- Respondente LLMNR
- Verificação DNSSEC
- IPC no kernel
- kdbus
- sd-bus
- sincronização de horário com NTP
- systemd-timesyncd
- integração com contêineres
- sandboxing de serviços
- sandbox de aplicativos
- Formato de imagem do SO
- Formato de imagem do contêiner
- Formato de imagem da aplicação
- GPT com descoberta automática
- Sistemas sem estado
- sistemas instanciados
- restauração de fábrica
- inicialização e atualizações de nós
- integração com a nuvem
- gerenciamento de serviço entre nós
- imagens verificáveis do sistema operacional até o firmware
- Carregamento de inicialização
- Construindo o sistema operacional de próxima geração da Internet Unificando diferenças sem sentido entre distribuições
Voltando a: "É um sistema init, não algo com o qual os usuários interagem tradicionalmente". - é preciso salientar que o sistema init é apenas um item dessa lista.
E, finalmente, a última coisa que gostaria de comentar:
[A] única vez em que um usuário não técnico verá isso é quando algo der errado.
Oh, que alívio! :)
Alterar
As alterações mais notáveis para usuários finais (que não sejam os próprios scripts) estão iniciando e parando serviços e usando comandos como:
que não funcionam mais como o esperado. Por exemplo, nohup
é um comando POSIX para garantir que o processo continue em execução após o logout da sessão. Já não funciona no systemd. Também programas como screen
e tmux
precisam ser invocados de uma maneira especial ou, caso contrário, os processos que você executa com eles serão mortos (apesar de não serem mortos nesses processos, geralmente é o principal motivo da execução do screen ou tmux em primeiro lugar).
Isso não é um bug, é uma escolha de design, portanto, não é provável que seja corrigido no futuro. Foi o que Lennart Poettering disse sobre esse assunto:
Na minha opinião, era realmente muito estranho no UNIX que, por padrão, deixasse o código arbitrário do usuário ficar irrestrito após o logout. Foi discutido há muito tempo entre muitas pessoas do sistema operacional, que isso deve ser possível, mas certamente não é o padrão, mas ninguém se atreveu até o momento a acionar o comutador para passar de um padrão para uma opção. Não limpar as sessões do usuário após o logout não é apenas feio e um tanto burro, mas também um problema de segurança. O systemd 230 agora finalmente apertou o botão e finalmente, por padrão, limpa tudo corretamente quando o usuário efetua logout.
Para mais informações, consulte:
Corrida screen
- iniciante:
screen
- systemd:
systemd-run --user --scope screen
(Nota: o comportamento do "iniciante" acima é realmente qualquer coisa, exceto systemd, isso não é específico do inicio)
Iniciando o trabalho foo:
- iniciante:
start foo
- systemd:
systemctl start foo
Parando o trabalho foo:
- iniciante:
stop foo
- systemd:
systemctl stop foo
Reiniciando o trabalho foo:
- iniciante:
restart foo
- systemd:
systemctl restart foo
Listando trabalhos com seu status:
- iniciante:
initctl list
- systemd:
systemctl status
(Veja minha resposta em Quais são os prós / contras do Upstart e do systemd? Para obter mais detalhes que estão fora do escopo desta pergunta.)
Logs
Há também uma grande diferença no manuseio dos logs, porque, contrariamente à tradição do Unix, os logs do systemd são armazenados em arquivos binários em um formato personalizado; portanto, em vez de:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
você precisa usar comandos especiais para acessar seus logs:
sudo journalctl -u foo
sudo journalctl -u foo -f
Controvérsias
A introdução do systemd primeiro no Debian e depois no Ubuntu não foi isenta de controvérsias e vasta oposição, como é conhecido por quem escreveu um dos seguintes artigos:
A posição oficial do Debian no systemd e a controvérsia resultante levaram à declaração do Êxodo em 2014 e terminaram com a renúncia de Ian Jackson .
O Freedom Init , Without-Systemd.org e Systemd-Free.org iniciativas nasceram, com um monte de discussão sobre Hacker News .
Leitura adicional