Qual è l'equivalente systemctl


30

Sto convertendo un pacchetto da .rpm a .deb usando questo tutorial . Tuttavia, per testare ed eseguire il debug dell'applicazione devo eseguirla. Il readme dei programmi spiega come eseguirlo come servizio con:

systemctl enable progname.service
systemctl start progname.service

Qual è l'equivalente su Ubuntu per questi comandi?


sudo service network-manager restart è quello che stavo cercando quando l'ho trovato.
Martin Thoma,

A partire dal 2018, Ubuntu utilizza il più recente systemd systemctl(come qualsiasi sistema sopra Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). La vecchia /usr/sbin/serviceutility chiama systemctlif / quando il sistema esegue systemd.
michael

Risposte:


12

Ubuntu sta attualmente pianificando / sviluppando per utilizzare systemd in futuro. Vedere i seguenti collegamenti per informazioni: Vivid passerà all'avvio con systemd ... e Note di rilascio: avvio e gestione del servizio

Sto usando 14.04.

È possibile utilizzare il comando più nativo update-rc.d. Controlla la pagina man.

Abilitazione di un servizio con impostazioni predefinite (vedere la pagina man):

sudo update-rc.d foo_service defaults

Disabilitazione di un servizio:

sudo update-rc.d foo_service remove

Si noti che per rimuovere senza messaggio di errore il file foo_service non deve essere presente. Tuttavia puoi forzare:

sudo update-rc.d -f foo_service remove

4
Non c'è forse a riguardo. 15.04 utilizza systemd.
Muru,

@muru Hai un riferimento per favore? Sentiti libero di modificare la mia risposta e di far sapere alla gente.
Ely,

1
il post che annuncia il passaggio durante lo sviluppo: lists.ubuntu.com/archives/ubuntu-devel-announce/2015-March/… , le note di rilascio della versione finale: wiki.ubuntu.com/VividVervet/…
muru

5

systemctl è l'utilità di controllo per systemd:

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

Nota che Ubuntu non usa systemd, usa upstart, che in linea di principio fa alcune delle stesse cose, ma ha alcuni concetti diversi.

Senza molta conoscenza di systemd e in base a ciò che ho letto nel documento che ho pubblicato, penso che non sia necessario "abilitare" un servizio. Il semplice rilascio del file .conf per il tuo servizio in / etc / init dovrebbe renderlo consapevole.

Questo è il nocciolo della questione, però: il file di configurazione di systemd per il tuo servizio non funzionerà senza modifiche su Ubuntu, devi "tradurlo" in una versione equivalente per Upstart. Ecco la documentazione per upstart:

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

Una volta che hai un file .conf upstart adatto, puoi avviare un servizio (equivalente, credo, all'avvio di systemctl) usando:

start your-service

2
Il guaio è, iniziando 13.10, Ubuntu fa logind uso di systemd, che di default sospende un computer portatile quando il coperchio è chiuso. Se si desidera che lo schermo venga bloccato prima che ciò accada, è necessario sospendere un servizio di sistema dalla chiusura del coperchio e, per farlo, sembra che sia necessario systemctl. Vedi forum.xfce.org/viewtopic.php?id=8411 e bbs.archlinux.org/viewtopic.php?id=148829 per esempio.
Douglas Bagnall,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.