Co to jest odpowiednik systemctl

30

Konwertuję pakiet z .rpm na .deb, korzystając z tego samouczka . Jednak w celu przetestowania i debugowania aplikacji muszę ją uruchomić. Program readme wyjaśnia, że ​​należy go uruchomić jako usługę z:

systemctl enable progname.service
systemctl start progname.service

Jaki jest odpowiednik Ubuntu dla tych poleceń?

Marnaw
źródło
sudo service network-manager restart właśnie tego szukałem, kiedy to znalazłem.
Martin Thoma
Począwszy od 2018 roku, Ubuntu używa nowszego systemud systemctl(podobnie jak każdy system powyżej Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). Stare /usr/sbin/servicenarzędzie wywołuje, systemctljeśli / kiedy system działa systemd.
Michael

Odpowiedzi:

12

Ubuntu obecnie planuje / rozwija się, aby używać systemd w przyszłości. Aby uzyskać informacje, zobacz następujące łącza: Vivid przełączy się na uruchamianie za pomocą systemd ... i Informacje o wersji: Zarządzanie uruchomieniem i usługami

Używam 14.04.

Możesz użyć bardziej natywnego polecenia update-rc.d. Sprawdź stronę podręcznika.

Włączanie usługi z wartościami domyślnymi (patrz strona man):

sudo update-rc.d foo_service defaults

Wyłączanie usługi:

sudo update-rc.d foo_service remove

Zauważ, że aby usunąć bez komunikatu o błędzie plik foo_service nie może być obecny. Możesz jednak wymusić:

sudo update-rc.d -f foo_service remove
Ely
źródło
4
Nie ma może o tym. 15.04 używa systemd.
muru
@muru Dou proszę o referencje? Edytuj moją odpowiedź i daj znać innym.
Ely
1
post informujący o zmianie podczas tworzenia: lists.ubuntu.com/archives/ubuntu-devel-announce/2015-March/... , informacje o wydaniu ostatecznego wydania: wiki.ubuntu.com/VividVervet/…
muru
5

systemctl to narzędzie kontrolne dla systemd:

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

Zauważ, że Ubuntu nie używa systemd, używa upstart, który robi kilka takich samych zasad, ale ma kilka różnych koncepcji.

Bez dużej wiedzy na temat systemd i na podstawie tego, co przeczytałem w opublikowanym przeze mnie dokumencie, myślę, że nie trzeba „włączać” usługi. Po prostu upuszczenie pliku .conf dla twojej usługi w / etc / init powinno uświadomić go upstartowi.

Taki jest sedno sprawy: systemowy plik konfiguracyjny dla twojej usługi nie będzie działał bez zmian na Ubuntu, musisz „przetłumaczyć” to na równoważną wersję dla Upstart. Oto dokumentacja dla upstart:

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

Gdy masz odpowiedni plik .conf do uruchomienia, możesz uruchomić usługę (myślę, że odpowiada to systemctl start), używając:

start your-service
roadmr
źródło
2
Problem jest, począwszy od 13.10, Ubuntu robi logind wykorzystaniu koniecznie Systemd, która domyślnie zawiesza laptopa, gdy pokrywa jest zamknięta. Jeśli chcesz, aby blokował ekran, zanim to się stanie, musisz zawiesić usystematyzowaną usługę przy zamknięciu pokrywy i zrobić to, czego potrzebujesz systemctl. Zobacz na przykład forum.xfce.org/viewtopic.php?id=8411 i bbs.archlinux.org/viewtopic.php?id=148829
Douglas Bagnall,