usługa start/stop systemctl: Jak skonfigurować skrypt startowy i proces odrodzenia w Ubuntu, CentOS, Redhat Linux
Opublikowany: 2021-06-09Jak napisać skrypt startowy dla systemd?
systemd
to najnowsze service management utility
we wszystkich najnowszych wersjach dystrybucji Linuksa, takich jak Ubuntu OS, Redhat OS, CentOS.
Dlatego wersje Ubuntu 17.4 i Redhat 7.4 obsługują teraz systemctl command
jako skrypt startowy. Jeśli korzystasz ze starszej wersji systemu operacyjnego Linux, być może będziesz musiał spojrzeć na dół tej strony, aby zobaczyć starszy init.d script
W tym samouczku omówimy poniżej rzeczy
- Konfigurowanie jednostki serwisowej systemd
- Jak
configure
systemd? - Jak
enable
systemd? - Jak uruchomić proces automatycznie za pomocą systemd?
- Jak zatrzymać i odrodzić proces za pomocą
respawn
?
Kroki konfiguracji dla tego samouczka:
Prerequisite:
Skompilowaliśmy wersję programu CrunchifyAlwaysRunningProgram.java w folderze /tmp/crunchify
. Ten proces java będzie działał w tle przez cały czas. Możesz pobrać program stąd.
Po pobraniu try to compile
i uruchomić, aby upewnić się, że działa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
Możesz wpisać CTRL + C
, aby wyjść z programu.
Teraz zacznijmy od konfigurowania skryptu automatycznego uruchamiania systemd dla powyższego programu.
Krok 1
- Przejdź do folderu /lib/systemd/system
- Wpisz
cd /lib/systemd/system
Krok 2
- utwórz plik
crunchify.service
(zmień odpowiednio nazwę pliku) - umieść w nim poniżej treść
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

Krok 3
- Zapisz plik
- Zapewnij uprawnienia do wykonywania za pomocą
chmod 755 crunchify.service
Krok 4
- Załaduj crunchify.service za pomocą polecenia
systemctl daemon-reload
- Włącz crunchify.service za pomocą polecenia
systemctl enable crunchify.service
- Uruchom crunchify.service za pomocą polecenia
systemctl start crunchify
- Sprawdź status crunchify.service za pomocą polecenia
systemctl status crunchify
Krok-5
- Teraz sprawdź, czy proces jest uruchomiony, czy nie?
- Wpisz polecenie
ps -few | grep java
ps -few | grep java
, aby zobaczyć wszystkie uruchomione procesy Java - Powinieneś zobaczyć coś takiego
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
Oznacza to, że proces 28631
zaczyna używać twojego skryptu startowego. Możesz mieć inny identyfikator procesu.
Jak sprawdzić, czy twój systemd crunchify.service działa, czy nie?
- Spróbuj zabić proces za pomocą
kill -9 28631
i powinieneś zobaczyć, że nowy proces powinien zostać utworzony automatycznie. - W moim przypadku utworzono nowy identyfikator procesu
28887
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
Wideo: Kompletny przykład konfiguracji skryptu startowego Live systemd:
Ten film zawiera – Jak skonfigurować skrypt startowy/upstart systemd w CentOS, Redhat, Ubuntu Linux OS?
- Jak automatycznie uruchomić skrypt powłoki przy starcie?
- Jak utworzyć usługę systemd w systemie Linux (CentOS 7)
- Jak skonfigurować usługę Linux do automatycznego uruchamiania?
- Skrypt startowy systemu Centos 7
- Skrypt startowy systemu Ubuntu
Chcesz dowiedzieć się więcej o systemd? Oto ściągawka w celach informacyjnych.
Mam nadzieję, że dowiesz się everything about systemd command
i konfigurowaniu skryptu startowego we wszystkich typach systemów operacyjnych Linux.
STOP: TYLKO dla starszej wersji systemu operacyjnego
Jeśli używasz older version
Redhat, Ubuntu, CentOS, będziesz potrzebować skryptu w tym formacie.
- Przejdź do
/etc/init
- Utwórz plik
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- Po prostu uruchom usługę za pomocą polecenia
service crunchify start
- Wykonaj te same czynności weryfikacyjne, co powyżej
Daj mi znać, jeśli zauważysz jakikolwiek problem z uruchomieniem skryptu upstart w swoim środowisku. Miłego dnia i Szczęśliwego kodowania.