Re: malformated LSB header in postgres: missing LSB end marker, aborting - Mailing list pgsql-general

From Adrian Klaver
Subject Re: malformated LSB header in postgres: missing LSB end marker, aborting
Date
Msg-id bc2a5ecb-e888-4a5f-9021-2b24e8a9fc13@aklaver.com
Whole thread Raw
In response to malformated LSB header in postgres: missing LSB end marker, aborting  (Matthias Apitz <guru@unixarea.de>)
List 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



pgsql-general by date:

Previous
From: Matthias Apitz
Date:
Subject: malformated LSB header in postgres: missing LSB end marker, aborting
Next
From: PALAYRET Jacques
Date:
Subject: Re: Logical replication in PostgreSQL Amount of subscriber vs publisher WALs Vacuuming