Обсуждение: Upgrade packages - Control Instance
Hi, I'm looking for a way to control the way instances are restarted when `apt upgrade` run => sometime, if there is a large number of packages to upgrade, the instances is stopped for a long time. In the past, I used to use start.conf with manual setting, then restart "manually" after the upgrade, which give downtime as short as I can ; but now, it seems that "stop" is always done, even when i disable the systemd service (ok,it is weird to disable service and to want the service up, I know ) => I think that the fact we can't forbid the stop is not correct. I know that I can hold the postgresql packages, run the big `apt upgrade` then unhold packages and do the postgresql upgrade, but I think it's a more complicated way to do it. Am I miss something ? Am I the only one disturbed by the fact that we can't forbid stop ? regards, -- Sébastien
Re: Sébastien Lardière 2019-05-21 <f4efadb7-ecb0-ba1f-383b-b9a38f988f87@lardiere.net> > Hi, > > I'm looking for a way to control the way instances are restarted when > `apt upgrade` run => sometime, if there is a large number of packages to > upgrade, the instances is stopped for a long time. > > In the past, I used to use start.conf with manual setting, then restart > "manually" after the upgrade, which give downtime as short as I can ; > but now, it seems that "stop" is always done, even when i disable the > systemd service (ok,it is weird to disable service and to want the > service up, I know ) => I think that the fact we can't forbid the stop > is not correct. > > I know that I can hold the postgresql packages, run the big `apt > upgrade` then unhold packages and do the postgresql upgrade, but I think > it's a more complicated way to do it. > > Am I miss something ? > > Am I the only one disturbed by the fact that we can't forbid stop ? The generic solution is policy-rc.d: https://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt Simple sample implementation: #!/bin/sh # policy-rc.d script for chroots. # Copyright (c) 2007 Peter Palfrader <peter@palfrader.org> test -f /etc/debian_chroot || exit 0 while true; do case "$1" in -*) shift ;; makedev) exit 0;; *) echo "Not running services in chroot." exit 101 ;; esac done Christoph
On 21/05/2019 12:09, Christoph Berg wrote: > Re: Sébastien Lardière 2019-05-21 <f4efadb7-ecb0-ba1f-383b-b9a38f988f87@lardiere.net> >> Hi, >> >> I'm looking for a way to control the way instances are restarted when >> `apt upgrade` run => sometime, if there is a large number of packages to >> upgrade, the instances is stopped for a long time. >> >> In the past, I used to use start.conf with manual setting, then restart >> "manually" after the upgrade, which give downtime as short as I can ; >> but now, it seems that "stop" is always done, even when i disable the >> systemd service (ok,it is weird to disable service and to want the >> service up, I know ) => I think that the fact we can't forbid the stop >> is not correct. >> >> I know that I can hold the postgresql packages, run the big `apt >> upgrade` then unhold packages and do the postgresql upgrade, but I think >> it's a more complicated way to do it. >> >> Am I miss something ? >> >> Am I the only one disturbed by the fact that we can't forbid stop ? > The generic solution is policy-rc.d: > > https://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt > > Simple sample implementation: > > #!/bin/sh > > # policy-rc.d script for chroots. > # Copyright (c) 2007 Peter Palfrader <peter@palfrader.org> > > test -f /etc/debian_chroot || exit 0 > > while true; do > case "$1" in > -*) shift ;; > makedev) exit 0;; > *) > echo "Not running services in chroot." > exit 101 > ;; > esac > done > Indeed, it works, I just added : postgresql*) echo "Do not manage PostgreSQL service" exit 101 ;; to manage postgresql specifically. The path is /usr/sbin/policy-rc.d ; then chmod a+x thanks, -- Sébastien