【问题标题】:Systemd service in package is restarted on upgrade升级时重新启动软件包中的 Systemd 服务
【发布时间】:2021-02-22 11:06:31
【问题描述】:

我使用 debhelper 和 python setuptools 来构建我的包。 我最近将兼容级别 9 更新到了 11,以便使用 systemd 计时器。

从那一刻起,每次我升级包时,包含的服务都会重新启动。 我尝试使用以下规则进行构建:

#! /usr/bin/make -f

#export DH_VERBOSE = 1
export PYBUILD_NAME=my_pkg
export DH_ALWAYS_EXCLUDE=CVS:.svn:.git:.vscode*
export PYBUILD_INTERPRETERS=python3

%:
    dh $@ --with python3 --buildsystem=pybuild

override_dh_installinit:
        dh_installinit --no-stop-on-upgrade --no-restart-on-upgrade --no-restart-after-upgrade --no-start

override_dh_systemd_enable:
        dh_systemd_enable --name=my_pkg

override_dh_systemd_start:
        dh_systemd_start --no-stop-on-upgrade --no-restart-on-upgrade --no-restart-after-upgrade --no-start
        python3 setup.py clean --all

根据文档,这些标签应该可以满足我的要求,但我可能缺少一些东西:

dh_systemd_start

dh_installinit

每次我更新它时,包含的服务都会重新启动。 该服务正在运行更新本身,因此重新启动时更新未完成。

【问题讨论】:

    标签: setuptools systemd restart debhelper


    【解决方案1】:

    不出所料,我看错了方向。 使用的正确选项是: dh_installsystemd

    规则文件改成:

    #! /usr/bin/make -f
    
    #export DH_VERBOSE = 1
    export PYBUILD_NAME=my_pkg
    export DH_ALWAYS_EXCLUDE=CVS:.svn:.git:.vscode*
    export PYBUILD_INTERPRETERS=python3
    
    %:
        dh $@ --with python3 --buildsystem=pybuild
    
    override_dh_systemd_enable:
            dh_systemd_enable --name=my_pkg
    
    override_dh_installsystemd:
            dh_installsystemd --no-restart-after-upgrade
    
    override_dh_systemd_start:
            python3 setup.py clean --all
    

    我希望这会帮助其他处于相同情况的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-07
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多