Shell-Script
在哪個初始化級別 /etc/profile 或 /etc/environment 文件被讀取?
TL:DR : 在哪個初始化級別 /etc/profile 或 /etc/environment 文件被讀取?
我想創建一個服務 (
/etc/init.d/myservice
),啟動位於 的 shell 腳本/opt/myservice/myservice.sh
。但是這個位置 (/opt/myservice/
) 是在安裝時定義的,所以它不是一個固定的位置。假設我在文件中設置了一個環境變數
/etc/profile
或/etc/environment
類似MYSERVICE_PATH=/opt/myservice
設置。# Default-Start: 3 4 5``/etc/init.d/myservice
我可以安全地假設
$MYSERVICE_PATH
在那些初始化級別(3、4、5)上總是可用的,所以我的初始化腳本可以呼叫sh $MYSERVICE_PATH/myservice.sh
?
您可能正在尋找錯誤的位置來儲存應用程序配置資訊。
/etc/profile
用於配置登錄 shell 的預設設置(例如,當 SSH 進入並bash
作為登錄 shell 呼叫時)。它的目的不是為了配置應用程序安裝位置等。
/etc/
然而,作為一個整體,正是如此。完成您正在尋找的最佳方法可能是定義一個始終位於 eg 的配置文件/etc/myservice.conf
,它可能類似於:# Configuration file for the My Service daemon # # Default settings: # myservice_root - The directory in which the service is installed # Default: /var/run/myservice # myservice_port - The TCP port upon which the service listens for incoming connecitons # Default: 55321 myservice_root=/opt/myservice myservice_port=6466
然後,您的應用程序可以隨時查看
/etc/myservice.conf
其配置,無論它碰巧安裝到文件系統的哪個位置,其他系統管理員可以立即查看文件的用途以及可重新配置的選項。