Thread
-
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.
-
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
-
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.
-
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