我目前正在运行 Ubuntu 12.04。我创建了一个 debian 包,该包目前已成功安装并启动了三个新进程。我还通过在 /etc/init.d 中放置以下脚本使这三个进程在运行时启动:
# This example is from http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian
# Also used http://wiki.debian.org/LSBInitScripts/
### BEGIN INIT INFO
# Provides: bleh
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
# Carry out specific functions when asked to by the system
case "$1" in
start)
cd //opt/bleh
attrf=.gatewayattributes
if [ ! -z "$1" ]
then
echo "[gateway]" >> $attrf
echo "activationKey = $1" >> $attrf
fi
./bleh1 -n &
./bleh2 &
python bleh3 &
;;
stop)
cd //opt/bleh
/usr/bin/pkill -f ./bleh1 -n
/usr/bin/pkill -f bleh3
kill -9 $(pidof bleh2)
rm -rf logs
;;
该脚本确实在运行时启动了三个进程,但由于某种原因,我实际上无法使用启动/停止命令,如 sudo /etc/init.d bleh.sh stop。
更大的问题是使用以下命令删除此软件包:sudo dpkg -r bleh
实际上并没有停止这三个进程,它只是尝试删除我安装在我的 opt 文件夹中的 bleh 目录。另外,我的 bleh 目录中有一个文件夹没有被删除,它给了我一个警告说明:正在删除 bleh ... dpkg:警告:删除 bleh 时,目录 '/opt/bleh/logs' 不为空,所以没有删除.
除非您具有 SU 特权,否则该日志目录中的文件是只读的,但我不明白这应该是什么问题,因为我在该 dpkg -r 命令上调用 sudo。
如果我再次运行 sudo dpkg -r bleh,它表明没有与 bleh 匹配的已安装包,这意味着它认为它已成功删除已安装的包,即使现有的日志目录和三个仍在运行的进程也是如此。
对不起,我知道这很长,但我真的需要一些帮助..提前谢谢!