Re: malformated LSB header in postgres: missing LSB end marker, aborting
Adrian Klaver <adrian.klaver@aklaver.com>
From: Adrian Klaver <adrian.klaver@aklaver.com>
To: Matthias Apitz <guru@unixarea.de>, pgsql-general@lists.postgresql.org
Date: 2026-03-25T14:35:21Z
Lists: pgsql-general
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