Configuración de Systemd para PostgreSQL en Sabayon.

Hace unos días me di cuenta que la forma en que se inician los servicios en Sabayon cambió, esto se debe a que Sabayon implemento Systemd.

Systemd es un manejador de servicios del sistema, fue creado para reemplazar a OpenRC.

La antigua manera de arrancar PostgreSQL era ejecutando el script “/etc/init.d/postgresql” pasandole como argumento el parametro start, y si queriamos parar el servicio le pasabamos el parametro stop. Con Systemd la cosa cambia.

Para que Postgresql se inicie con el nuevo sistema se tienen que crear dos ficheros de configuración, más exactamente /etc/tmpfiles.d/postgresql.conf y /etc/systemd/system/postgresql92.service (le puse 92 porque la version de Postgres que tengo instalada es la 9.2).

El fichero /etc/tmpfiles.d/postgresql.conf se crearia con las siguientes lineas:

d /run/postgres 0700 postgres postgres -

y el fichero /etc/systemd/system/postgresql92.service lo creariamos con el siguiente contenido:

[Unit]
Description=Initializing Postgresql 9.2 Database

[Service]
User=postgres
Group=postgres

EnvironmentFile=/etc/conf.d/postgresql-9.2

PermissionsStartOnly=true

ExecStartPre=/bin/mkdir /run/postgresql -p
ExecStartPre=/bin/chown postgres:postgres /run/postgresql
ExecStart=-/bin/sh -c "/usr/lib/postgresql-9.2/bin/postgres -D /etc/postgresql-%I --data-directory=/var/lib/postgresql/9.2/data"

[Install]
WantedBy=multi-user.target

Finalmente lo que hacemos es arrancar Postgres con la sintaxis de comandos de Systemd:

# systemctl start postgresql92.service

Y por último habilitamos postgresql con la siguiente linea

# systemctl enable postgresql92.service

Con esto cada vez que inicie nuestro computador Systemd automáticamente iniciara PostgreSQL.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s