IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

分類:

,

如何在Ubuntu 22.04‧開機時設定腳本(script)去啟動LAMPP伺服器

01. AWS EC2雖則號稱只有0.1%-0.2%停機時間,但測試了幾年使用EC2的經驗,新設定的Ubuntu伺服器,差不多2、3個星期,就會無源無故的重啟(Restart)。再使用多長一點時間,就會連重啟也不成功,要人手關閉EC2個體電源(Power off)再開。

02. 問題是,重啟後我要先停用預設的Apache伺服器,再執行LAMPP伺服器。但測試多次,開機執行腳本(startup script),但就是未能執行LAMPP伺服器。

03. 反覆測試一下,問題是源於開機執行腳本的『Service』位置。假設我設置了執行腳本名稱為『startup.service』。

sudo nano /etc/systemd/system/startup.service

04. 加入以下內容:

[Unit]
After=network.service
Description=Stop Apache and start LAMPP

[Service]
Type=forking
ExecStart=/opt/startup.sh
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

05. 之後在/opt/startup.sh檔案,簡單設定停用Apache伺服器,再執行LAMPP伺服器就可以。

sudo nano /opt/startup.sh

06. 加入以下內容。要注意頭一句『#!/bin/bash』是必需的,否則在埶行腳本時,系統就不知道要用那個編釋器(interpreter)去執行腳本。

#!/bin/bash
service apache2 stop
/opt/lampp/lampp start

07. 更改後,重新載入執行腳本。

sudo systemctl reenable startup.service

08. 再啟動執行腳本。

sudo systemctl start startup.service

09. 需要時可檢查執行腳本狀態。

sudo systemctl status startup.service

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *