Shell-Script

在哪個初始化級別 /etc/profile 或 /etc/environment 文件被讀取?

  • December 8, 2016

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其配置,無論它碰巧安裝到文件系統的哪個位置,其他系統管理員可以立即查看文件的用途以及可重新配置的選項。

引用自:https://unix.stackexchange.com/questions/328760