Qual é o equivalente systemctl

30

Estou convertendo um pacote de .rpm para .deb usando este tutorial . No entanto, para testar e depurar o aplicativo, eu preciso executá-lo. O programa Leiame explica para executá-lo como um serviço com:

systemctl enable progname.service
systemctl start progname.service

Qual é o equivalente no ubuntu para esses comandos?

Marnaw
fonte
sudo service network-manager restart é o que eu estava procurando quando encontrei isso.
Martin Thoma 27/05
A partir de 2018, o Ubuntu usa o systemd mais recente systemctl(assim como qualquer sistema acima do Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). O /usr/sbin/serviceutilitário antigo chama systemctlse / quando o sistema estiver executando o systemd.
Michael

Respostas:

12

O Ubuntu atualmente está planejando / desenvolvendo para usar o systemd no futuro. Consulte os seguintes links para obter informações: O Vivid mudará para a inicialização com systemd ... e Notas da versão: Gerenciamento de inicialização e serviço

Estou usando o 14.04.

Você pode usar o comando mais nativo update-rc.d. Verifique a página do manual.

Ativando um serviço com padrões (consulte a página de manual):

sudo update-rc.d foo_service defaults

Desabilitando um serviço:

sudo update-rc.d foo_service remove

Observe que, para remover sem mensagem de erro, o arquivo foo_service não deve estar presente. No entanto, você pode forçar:

sudo update-rc.d -f foo_service remove
Ely
fonte
4
Talvez não exista . 15.04 usa systemd.
muru 23/05
@ muru Dou você tem uma referência, por favor? Sinta-se à vontade para editar minha resposta e informar as pessoas.
Ely
1
o post anunciando a troca durante o desenvolvimento: lists.ubuntu.com/archives/ubuntu-devel-announce/2015-March/… , as notas de lançamento da versão final: wiki.ubuntu.com/VividVervet/…
muru
5

systemctl é o utilitário de controle para systemd:

http://www.freedesktop.org/software/systemd/man/systemctl.html

Observe que o Ubuntu não usa systemd, ele usa upstart, que faz algumas das mesmas coisas em princípio, mas tem alguns conceitos diferentes.

Sem muito conhecimento sobre o systemd e com base no que li no documento publicado, acho que você não precisa "ativar" um serviço. Simplesmente largar o arquivo .conf para o seu serviço em / etc / init deve fazer com que ele fique ciente.

Esse é o cerne da questão: o arquivo de configuração do systemd para o seu serviço não funcionará sem modificações no Ubuntu, você deve "traduzir" isso para uma versão equivalente ao Upstart. Aqui está a documentação para iniciante:

http://upstart.ubuntu.com/cookbook/

Depois de ter um arquivo .conf inicial adequado, você pode iniciar um serviço (equivalente, eu acho, ao systemctl start) usando:

start your-service
roadmr
fonte
2
O problema é, a partir de 13.10, Ubuntu faz logind uso do systemd, que por padrão suspende um laptop quando a tampa está fechada. Se você deseja bloquear a tela antes que isso aconteça, é necessário suspender um serviço do systemd do fechamento da tampa e fazer o que parece ser necessário systemctl. Veja forum.xfce.org/viewtopic.php?id=8411 e bbs.archlinux.org/viewtopic.php?id=148829 por exemplo.
Douglas Bagnall