
Ich versuche, auf einem Redhat-Server zwei Dienste einzurichten, die beim Start eine Datenbank starten und beim Herunterfahren stoppen. Daher habe ich zwei Dateien /etc/systemd/system
wie folgt abgelegt:
shutdown.dienst:
[Unit]
Description=Shutdown database at shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
[Service]
Type=oneshot
ExecStart=/usr/DBA/shutdown.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Startservice:
[Unit]
Description=Start database at startup after network becomes reachable
After=default.target
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/DBA/startup.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target
dann habe ich diese Befehle ausgeführt:
sudo systemctl daemon-reload
sudo systemctl enable startup.service
sudo systemctl enable shutdown.service
sudo systemctl start startup.service
sudo systemctl start shutdown.service
Wenn ich mir dann den Status anschaue, funktionieren sie einwandfrei und werden als aktiv und ausgeführt angezeigt. Dann starte ich den Server neu und überprüfe den Status erneut, aber ich erhalte Folgendes:
[ec2-user@ip-10-193-117-56 system]$ sudo systemctl status shutdown.service
Unit shutdown.service could not be found.
[ec2-user@ip-10-193-117-56 system]$ sudo systemctl status startup.service
Unit startup.service could not be found.
[ec2-user@ip-10-193-117-56 system]$
Ich verstehe also nicht, wo das Problem liegt. Warum werden die Dienste nach dem Neustart des Servers nicht gefunden? Sie müssen einmal aktiviert und gestartet werden, dann sollten sie automatisch starten.
Irgendeine Idee ?
Hier sind beide Dienste im Ordner:
cd /etc/systemd/system
ls -l
-rw-rw-r--. 1 root root 246 Feb 22 16:02 startup.service
-rw-rw-r--. 1 root root 255 Feb 22 16:02 shutdown.service
Antwort1
Die Lösung für dieses Problem besteht darin, die SELinux-Funktion wie folgt zu deaktivieren (dauerhafte Deaktivierung):
vi /etc/sysconfig/selinux
Ändern Sie dann die Direktive SELinux=enforcing
inSELinux=disabled
Starten Sie den Computer neu und führen Sie dann Folgendes aus: sestatus
Jetzt sollte angezeigt werden, dass es deaktiviert ist.