我正在尝试在 Redhat 服务器中设置 2 个服务,它们在启动时启动一个数据库,并在关闭时停止它,因此我放置了/etc/systemd/system
如下 2 个文件:
关机.服务:
[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
,现在应该显示它已被禁用。