我有一个conf文件产品,可以在启动时启动产品应用程序。
应用程序文件夹结构:
home/
jamnes/
product/
installation/
product1.0
product2.0
symlinktoproduct/
run.sh
product.conf文件:
# Product start file
#
# Starts the Product App and respawns when it quits
description " Product Application"
start on desktop-session-start
stop on runlevel [!2345]
respawn
exec /home/james/product/symlinktoproduct/run.sh
如果用户升级应用程序,我们将新版本放在安装文件夹中并更改symlinktoproduct-> latestversion
问题:
如果最新版本无效,我如何指向旧版本的产品文件。
shell我在conf文件中有任何检查天气最新版本是否正常工作。
可能有人会帮助我解决这个问题。
OS: Ubuntu的
答案 0 :(得分:0)
您可以在conf文件中添加一个检查:
exec ( basedir="/home/jamnes/product"
current_product="${basedir}/symlinktoproduct"
function run_product {
echo "Running product `ls -l ${current_product}`"
${current_product}/run.sh
return $?
}
# run the latest product
run_product || {
# if run.sh returns non-zero exit code, then run previous product
echo "ERROR: running product `ls -l ${current_product}`"
# get name of previous product by listing previous entry from installation directory.
# Assume alphabetical sort order.
prev_version=`ls -1 ${basedir}/installation | tail -2 | head -1`
echo "Rollback too previous version [$prev_version]";
# remove previous link
rm -f ${current_product}
# relink current product to the previous version
ln -sf ${basedir}/installation/${prev_version} ${current_product}
# run product again. Now previous version is executed.
run_product
}
)