On Thu, 21 May 2020 11:20:18 +0100, Neil Bothwick wrote:

> On Thu, 21 May 2020 06:44:35 +0200, Andreas Fink wrote:
> 
> > recently emerge started to get stuck after an upgrade of dovecot, and
> > it is somehow related to my /etc/portage/bashrc, which has the
> > following content: function post_pkg_postinst() {
> >     if test "$CATEGORY/$PN" = "dev-db/mariadb"; then
> >         /etc/init.d/mysql status && /etc/init.d/mysql restart
> >     elif test "$CATEGORY/$PN" = "www-servers/apache"; then
> >         /etc/init.d/apache2 status && /etc/init.d/apache2 restart
> >     elif test "$CATEGORY/$PN" = "net-mail/dovecot"; then
> >         /etc/init.d/dovecot status && /etc/init.d/dovecot restart
> >         echo 'going to sleep'
> >         sleep 5
> >         echo 'finished sleeping'
> >     elif test "$CATEGORY/$PN" = "mail-mta/postfix"; then
> >         /etc/init.d/postfix status && /etc/init.d/postfix restart
> >     elif test "$CATEGORY/$PN" = "net-misc/openssh"; then
> >         /etc/init.d/sshd status && /etc/init.d/sshd restart
> >     fi
> > }
> > 
> > 
> > I restart dovecot after an upgrade, in the same way as I restart e.g.
> > postfix. However for dovecot emerge gets stuck and does not continue
> > and is sitting there quietly (killable only via `pkill -9 emerge`).  
> 
> I can confirm this. I tried your bashrc (nice idea by the way, I
> normally manually run needrestart after an update) and the dovecot
> install completed but then hung. The next step is to add set +x to
> bashrc to see where the hang occurs.

It seems the final echo is executed, but then the function doesn't exit
for some reason. I tried rewriting it using case, which looks cleaner to
me but fails in the same way.


function post_pkg_postinst() {
        set +x
        case "$CATEGORY/$PN" in
                "net-mail/dovecot")
                        /etc/init.d/dovecot status && /etc/init.d/dovecot 
restart
                        echo 'going to sleep'
                        sleep 5
                        echo 'finished sleeping'
                        ;;
                        
                "mail-mta/postfix")
                        /etc/init.d/postfix status && /etc/init.d/postfix 
restart
                        ;;
                esac
}


-- 
Neil Bothwick

Vuja De: the feeling that you've never been here before.

Attachment: pgpFKANg_kzi0.pgp
Description: OpenPGP digital signature

Reply via email to