【Linux】自定義開機啟動service

呱呱二号發表於2024-12-10

【Linux】自定義開機啟動service

1. 確認 SELinux 是否開啟

1.1 臨時關閉 SELinux。臨時禁用 SELinux 後,系統會立即生效,但重新啟動後會恢復為啟用狀態。要臨時禁用 SELinux,請使用以下命令:

sudo setenforce 0

這個命令將 SELinux 模式從 Enforcing 設定為 Permissive,即系統會記錄違反 SELinux 策略的行為,但不會阻止它們。

getenforce

它應該輸出 Permissive,表示 SELinux 被禁用了。

1.2 永久關閉 SELinux

要永久禁用 SELinux,需要修改 /etc/selinux/config 配置檔案。

開啟 SELinux 配置檔案:

sudo nano /etc/selinux/config

查詢 SELINUX=enforcing 這一行,將其修改為 SELINUX=disabled:

SELINUX=disabled

這會禁用 SELinux 並防止它在系統重啟後重新啟用。

儲存並退出編輯器(按 Ctrl + X,然後按 Y 確認儲存)。

重啟系統以使更改生效:

sudo reboot

系統重啟後,使用以下命令確認 SELinux 已被禁用:

getenforce

如果輸出是 Disabled,那麼 SELinux 已成功禁用。


小結:

臨時禁用 SELinux 使用 setenforce 0,適用於測試和臨時問題解決。
永久禁用 SELinux 需要修改 /etc/selinux/config 配置檔案,並重啟系統。
注意: 禁用 SELinux 會使系統更加容易受到攻擊。建議只在沒有其他解決方案的情況下禁用 SELinux。如果禁用 SELinux 後指令碼執行正常,最好還是考慮調整 SELinux 策略,以保持系統安全。


自定義 service

1.建立 iot-saas.service

vi /etc/systemd/system/iot-saas.service

2.iot-saas.service 內容

[Unit]
Description=iot and saas service
After=docker.service
requires=docker.service

[Service]
Type=simple
ExecStart=/root/iot-and-saas-start.sh
TimeoutStartSec=0
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

3./root/iot-and-saas-start.sh 指令碼內容

#!/bin/sh
cd /home/uxlinks/iot-pass/mqtt
docker-compose up -d

cd /home/uxlinks/iot-pass/iot
docker-compose up -d

cd /home/uxlinks/esd-saas/esd-db
docker-compose up -d

cd /home/uxlinks/esd-saas/esd-saas
docker-compose up -d

4.修改指令碼許可權

chmod +x /root/iot-and-saas-start.sh

5.啟動 service/ 開機啟動

啟動

sudo systemctl start iot-saas.service

開機啟動

sudo systemctl enable iot-saas.service

搞定~

相關文章