gpt4 book ai didi

linux - dpkg remove 停止进程

转载 作者:太空狗 更新时间:2023-10-29 12:20:09 28 4
gpt4 key购买 nike

我目前正在运行 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 匹配,这意味着它认为它已成功删除已安装的包,即使存在该现有的日志目录和仍在运行的三个进程也是如此。

抱歉,我知道这很长,但我真的需要一些帮助..提前致谢!

最佳答案

作为recommended根据 Debian 新维护者指南,请使用 dh_installinit(当然,使用 debhelper 构建整个包)。默认情况下,这将添加脚本以在包安装和删除时启动和停止。

辅助文件(例如配置)通常在purge(例如dpkg -P)状态下被删除。要自行处理此问题,您需要一个deconfigure 脚本。

此外,最好使用 start-stop-daemon 而不是 &,这不足以实现适当的守护进程。

关于linux - dpkg remove 停止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148273/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com