我面临在我的服务脚本中使用环境变量的问题。在服务脚本中使用环境变量
在我的服务脚本中,我使用了一个环境变量,即INSTALL_DIR,其值在不同系统上可能会有所不同。我必须从$ INSTALL_DIR获得安装目录,然后我必须启动该服务。当我运行服务脚本时,环境变量根本不是来源的。
是否可以从INSTALL_DIR环境变量获取安装目录。我可以想到的另一个选择是使用INSTALL_DIR环境变量动态创建服务脚本。
echo "INSTALL DIR: ${INSTALL_DIR}"
name=`basename $0`
pid_file="/var/run/$name.pid"
get_pid() {
cat "$pid_file"
}
is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}
Start()
{
echo "Starting Application"
if is_running; then
echo "[`get_pid`] Already Started"
else
if [ -z "$user" ]; then
nohup $INSTALL_DIR/bin/application 2>&1 &
else
nohup sudo -u "$user" $cmd 1> $INSTALL_DIR/bin/application 2>&1 &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see logs"
exit 1
fi
echo "[`get_pid`] Started"
fi
}
我尝试使用运行应用程序下面的命令
service application start
如果我这样做,当我使用“服务应用程序启动”时,安装目录不是来源 –
然后在〜/ .bash_rc或〜/ .profile文件中导出$ INSTALL_DIR值。 –