在 init.d 的 postinst 中启动脚本会导致脚本无法终止

在 init.d 的 postinst 中启动脚本会导致脚本无法终止

我有一个postinst看起来像这样的脚本。

但是,当我在脚本的最后一行启动服务时,脚本postinst会挂起并且不会进入终端状态

#!/bin/sh
set -e
# Source debconf library.
. /usr/share/debconf/confmodule
mkdir -p /var/www
mkdir -p /var/log/robotasarouter
rm -f /var/www/robot_configuration_interface
ln -s /usr/share/robot_configuration_interface /var/www/
pip install virtualenv
cd /var/www/robot_configuration_interface
virtualenv env
. env/bin/activate
pip install -r requirements.txt
update-rc.d robot-configuration-interface defaults 90 >/dev/null
service robot-configuration-interface start

答案1

这个 postinst 脚本在很多方面都违反了规则,以至于您不能指望它通常表现得正常。它很可能挂起,因为它将意外的输出发送到stdout. Read man debconf-devel,它明确禁止这样做。

相关内容