
我正在嘗試在 Redhat 伺服器中設定 2 個在啟動時啟動資料庫並在關閉時停止的服務,因此我將 2 個檔案放在下面,/etc/systemd/system
如下所示:
關閉.服務:
[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
啟動服務:
[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
然後我做了這些命令:
sudo systemctl daemon-reload
sudo systemctl enable startup.service
sudo systemctl enable shutdown.service
sudo systemctl start startup.service
sudo systemctl start shutdown.service
然後當我查看狀態時,它們工作正常並顯示活動和正在運行。然後我重新啟動伺服器,並再次檢查狀態,但我得到以下資訊:
[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]$
所以我不明白,這是什麼問題。為什麼重啟伺服器後找不到服務?它們應該啟用並啟動一次,然後它們應該會自動啟動。
任何想法 ?
這是資料夾內的兩個服務:
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
答案1
此問題的答案是透過執行以下操作來停用 SELinux 功能(永久停用):
vi /etc/sysconfig/selinux
然後將指令更改SELinux=enforcing
為SELinux=disabled
然後重新啟動:sestatus
,它現在應該顯示它已停用。