翻译:博士:在哪个初始化级别读取 /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
?
答案1
您可能在错误的位置存储应用程序配置信息。
/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
其配置,无论它恰好安装到文件系统上的哪个位置,并且其他系统管理员可以立即查看该文件的用途以及可重新配置哪些选项。