Thread

  1. malformated LSB header in postgres: missing LSB end marker, aborting

    Matthias Apitz <guru@unixarea.de> — 2026-03-25T10:48:51Z

    Hello,
    
    We use the following script as /etc/init.d/postgres on
    SuSE Linux Enterprise, SLES 15 SP7, to start PostgreSQL 16.5 server:
    
    $ tar tzf postgresql-16.5.tar.gz | grep start-scripts/linux
    postgresql-16.5/contrib/start-scripts/linux
    
    # cp postgresql-16.5/contrib/start-scripts/linux /etc/init.d/postgres
    
    # head -10 /etc/init.d/postgres
    #! /bin/sh
    
    # chkconfig: 2345 98 02
    # description: PostgreSQL RDBMS
    
    # This is an example of a start/stop script for SysV-style init, such
    # as is used on Linux systems.  You should edit some of the variables
    # and maybe the 'echo' commands.
    #
    # Place this file at /etc/init.d/postgresql (or
    # ...
    
    Together with systemd services this gives the following error:
    
    # systemctl enable postgres.service
    Synchronizing state of postgres.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    Executing: /usr/lib/systemd/systemd-sysv-install enable postgres
    error: malformated LSB header in postgres: missing LSB end marker, aborting.
    
    The service file contains:
    
    # cat /etc/systemd/system/postgres.service
    [Unit]
    Description=SunRise PostgreSQL server
    After=systemd-user-sessions.service
    
    [Service]
    ExecStart=/etc/init.d/postgres start
    ExecStop=/etc/init.d/postgres stop
    TimeoutStartSec=infinity
    RemainAfterExit=yes
    
    
    [Install]
    WantedBy=multi-user.target
    
    When I enhance the script with this section between BEGIN / END
    
    # cat /etc/init.d/postgres
    #! /bin/sh
    # chkconfig: 2345 98 02
    # description: PostgreSQL RDBMS
    ### BEGIN INIT INFO
    # Provides:       postgresql
    # Required-Start: $network $named
    # Required-Stop:
    # Default-Start:  3 5
    # Default-Stop:
    # Description:
    ### END INIT INFO
    ...
    
    The error goes away:
    
    # systemctl enable postgres.service
    Synchronizing state of postgres.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    Executing: /usr/lib/systemd/systemd-sysv-install enable postgres
    ln -sf ../postgres /etc/init.d/rc3.d/S50postgres
    ln -sf ../postgres /etc/init.d/rc5.d/S50postgres
    
    Any comments on this?
    
    Thanks
    
    	matthias
    
    
    -- 
    Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
    Public GnuPG key: http://www.unixarea.de/key.pub
    
    Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)
    
    I, Matthias, I am not at war with Russia.
    Я не воюю с Россией.
    Ich bin nicht im Krieg mit Russland.
    
    
    
    
  2. Re: malformated LSB header in postgres: missing LSB end marker, aborting

    Adrian Klaver <adrian.klaver@aklaver.com> — 2026-03-25T14:35:21Z

    On 3/25/26 3:48 AM, Matthias Apitz wrote:
    > 
    > Hello,
    > 
    > We use the following script as /etc/init.d/postgres on
    > SuSE Linux Enterprise, SLES 15 SP7, to start PostgreSQL 16.5 server:
    > 
    > $ tar tzf postgresql-16.5.tar.gz | grep start-scripts/linux
    > postgresql-16.5/contrib/start-scripts/linux
    > 
    > # cp postgresql-16.5/contrib/start-scripts/linux /etc/init.d/postgres
    > 
    > # head -10 /etc/init.d/postgres
    > #! /bin/sh
    > 
    > # chkconfig: 2345 98 02
    > # description: PostgreSQL RDBMS
    > 
    > # This is an example of a start/stop script for SysV-style init, such
    > # as is used on Linux systems.  You should edit some of the variables
    > # and maybe the 'echo' commands.
    > #
    > # Place this file at /etc/init.d/postgresql (or
    > # ...
    > 
    > Together with systemd services this gives the following error:
    > 
    > # systemctl enable postgres.service
    > Synchronizing state of postgres.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    > Executing: /usr/lib/systemd/systemd-sysv-install enable postgres
    > error: malformated LSB header in postgres: missing LSB end marker, aborting.
    > 
    > The service file contains:
    > 
    > # cat /etc/systemd/system/postgres.service
    > [Unit]
    > Description=SunRise PostgreSQL server
    > After=systemd-user-sessions.service
    > 
    > [Service]
    > ExecStart=/etc/init.d/postgres start
    > ExecStop=/etc/init.d/postgres stop
    > TimeoutStartSec=infinity
    > RemainAfterExit=yes
    > 
    > 
    > [Install]
    > WantedBy=multi-user.target
    > 
    > When I enhance the script with this section between BEGIN / END
    > 
    > # cat /etc/init.d/postgres
    > #! /bin/sh
    > # chkconfig: 2345 98 02
    > # description: PostgreSQL RDBMS
    > ### BEGIN INIT INFO
    > # Provides:       postgresql
    > # Required-Start: $network $named
    > # Required-Stop:
    > # Default-Start:  3 5
    > # Default-Stop:
    > # Description:
    > ### END INIT INFO
    > ...
    > 
    > The error goes away:
    > 
    > # systemctl enable postgres.service
    > Synchronizing state of postgres.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    > Executing: /usr/lib/systemd/systemd-sysv-install enable postgres
    > ln -sf ../postgres /etc/init.d/rc3.d/S50postgres
    > ln -sf ../postgres /etc/init.d/rc5.d/S50postgres
    > 
    > Any comments on this?
    
     From the contrib script:
    
    "# Proper init scripts on Linux systems normally require setting lock
    # and pid files under /var/run as well as reacting to network
    # settings, so you should treat this with care.
    "
    
     From the start script that the PGDG Debian/Ubuntu packages use:
    
    ### BEGIN INIT INFO
    # Provides:             postgresql
    # Required-Start:       $local_fs $remote_fs $network $time
    # Required-Stop:        $local_fs $remote_fs $network $time
    # Should-Start:         $syslog
    # Should-Stop:          $syslog
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    PostgreSQL RDBMS server
    ### END INIT INFO
    
    [Continued]
    
    
    > 
    > Thanks
    > 
    > 	matthias
    > 
    > 
    
    
    -- 
    Adrian Klaver
    adrian.klaver@aklaver.com
    
    
    
    
  3. Re: malformated LSB header in postgres: missing LSB end marker, aborting

    Matthias Apitz <guru@unixarea.de> — 2026-04-01T07:32:44Z

    El día miércoles, marzo 25, 2026 a las 07:35:21a. m. -0700, Adrian Klaver escribió:
    
    > From the contrib script:
    > 
    > "# Proper init scripts on Linux systems normally require setting lock
    > # and pid files under /var/run as well as reacting to network
    > # settings, so you should treat this with care.
    > "
    
    I've read this comment in the script before filing my question. And my
    question is: Why postgresql.org does not deliver this PGDG Debian/Ubuntu
    version of the script for Linux(!) as default:
    
    > 
    > From the start script that the PGDG Debian/Ubuntu packages use:
    > 
    > ### BEGIN INIT INFO
    > # Provides:             postgresql
    > # Required-Start:       $local_fs $remote_fs $network $time
    > # Required-Stop:        $local_fs $remote_fs $network $time
    > # Should-Start:         $syslog
    > # Should-Stop:          $syslog
    > # Default-Start:        2 3 4 5
    > # Default-Stop:         0 1 6
    > # Short-Description:    PostgreSQL RDBMS server
    > ### END INIT INFO
    > 
    > [Continued]
    
    Thanks
    
    	matthias
    
    -- 
    Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
    Public GnuPG key: http://www.unixarea.de/key.pub
    
    Jens Spahn (CDU, 11.3.2025 in FAZ):
    "Wir können uns verteidigen lernen oder alle Russisch lernen."
    "We can learn to defend ourselves or we can all learn Russian."
    "O podemos aprender a defendernos o todos podemos aprender ruso."
    
    Ich ziehe es vor, Russisch zu lernen. I prefer to learn russian.
    Yo prefiero aprender ruso.
    
    
    
    
  4. Re: malformated LSB header in postgres: missing LSB end marker, aborting

    Adrian Klaver <adrian.klaver@aklaver.com> — 2026-04-01T15:14:10Z

    On 4/1/26 12:32 AM, Matthias Apitz wrote:
    > El día miércoles, marzo 25, 2026 a las 07:35:21a. m. -0700, Adrian Klaver escribió:
    > 
    >>  From the contrib script:
    >>
    >> "# Proper init scripts on Linux systems normally require setting lock
    >> # and pid files under /var/run as well as reacting to network
    >> # settings, so you should treat this with care.
    >> "
    > 
    > I've read this comment in the script before filing my question. And my
    > question is: Why postgresql.org does not deliver this PGDG Debian/Ubuntu
    > version of the script for Linux(!) as default:
    
    Because there are more flavors of Linux then the Debian family?
    
    The basic issue is that the project itself takes responsibility for 
    delivering the source. Integration of the source with OS'es is left to 
    others.
    
    What you see here:
    
    https://www.postgresql.org/download/
    
    is delivered by separate packaging teams.
    
    At this point end users directly building from source is, from what I 
    understand, a very small subset of the Postgres user base. The 
    expectation is that you will be installing from some sort of packaging 
    system or using a pre-installed service.
    
    > 
    >>
    >>  From the start script that the PGDG Debian/Ubuntu packages use:
    >>
    >> ### BEGIN INIT INFO
    >> # Provides:             postgresql
    >> # Required-Start:       $local_fs $remote_fs $network $time
    >> # Required-Stop:        $local_fs $remote_fs $network $time
    >> # Should-Start:         $syslog
    >> # Should-Stop:          $syslog
    >> # Default-Start:        2 3 4 5
    >> # Default-Stop:         0 1 6
    >> # Short-Description:    PostgreSQL RDBMS server
    >> ### END INIT INFO
    >>
    >> [Continued]
    > 
    > Thanks
    > 
    > 	matthias
    > 
    
    
    -- 
    Adrian Klaver
    adrian.klaver@aklaver.com