Server starten und stoppen

HaWe51

Benutzer
Beiträge
24
Hallo,
wenn ich es richtig verstanden habe, wird der PostgresSQL11-Server auf meinem Rechner automatisch mit dem Betriebssystem gestartet. Es gibt doch sicherlich einen Befehl (z. B. über das Terminal) um den Server manuell zu starten und zu stoppen bzw. zu verhindern, dass er automatisch mit dem Betriebssystem gestartet wird.
Die einzige Möglichkeit, die ich bisher gefunden habe um den Server zu stoppen, ist über PgAdmin.

Für eine hilfreiche Antwort wäre ich sehr dankbar.
Helmut
 
Werbung:
Das hängt von Deinem Betriebssystem ab.

Unter Windows wäre das z.B.:
Code:
net stop postgresql-11
net start postgresql-11
Der genaue Name des Service hängt von Deiner Installation ab. Unter Windows kannst Du den "autostart" über die Dienste Verwaltung ändern, oder über da "sc" Tool:
Code:
sc config "postgresql-11" start= demand
Ganz wichtig: das Leerzeichen nach dem =

Unter CentOS wäre es z.B.:
Code:
systemctl stop postgresql-11.service
systemctl start postgresql-11.service
Autostart würde man (wenn ich das richtig im Kopf habe) über
Code:
systemctl disable postgresql-11
machen.
 
Zuletzt bearbeitet:
@castorp: Ich benutze macOS Mojave., da muss ich mal sehen wie das gehen könnte. Vielleicht hat da ja noch einer einen hilfreichen Hinweis.

Erst einmal vielen Dank für Deine schnelle Antwort.
 
Also, bei macOS gibt es sog. Anmeldeobjekte - Programme, die bei der Anmeldung eines Benutzers gestartet werden. Hier ist der PostgresSQL-Server nicht verzeichnet.
Außerdem gibt es sog. LaunchAgents, die beim Systemstart gestartet werden. Hier ist der Server auch nicht aufgelistet.
Dann gibt es noch sog. LaunchDaemons. Hier gibt es tatsächlich den
"com.edb.launchd.postgresql-11.plist". Die plist hat folgenden Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>com.edb.launchd.postgresql-11</string>
<key>ProgramArguments</key>
<array>
<string>/Library/PostgreSQL/11/bin/postmaster</string>
<string>-D/Library/PostgreSQL/11/data</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>postgres</string>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
</dict>
</plist>


Möglicherweise müßte man den <key>RunAtLoad</key> in der nachfolgenden Zeile auf <false/> setzen. Nur wie starte ich den Server dann manuell? Man kann ja nicht jedesmal die PList ändern.
 
@akretschmer: Vielen Dank für Deine Recherche - sehr interessant.

Ich habe mich dann aber daran erinnert, dass @castorp mir einmal empfohlen hatte, die Postgres-App zu verwenden. Ich habe die App nun installiert und sie bietet tatsächlich eine sehr komfortable Lösung für das Starten und Stoppen des Servers und ermöglicht es auch festzulegen, ob der Server beim Systemstart mutgestartet werden soll. Alles in allem sehr komfortable.
 
Jetzt habe ich doch noch eine Frage:

Wenn ich die in @akretschmers Recherche gezeigten Methoden verwenden will dann startet der ganze Prozess immer mit:
Code:
# Start postgres
 $ sudo su postgres
Password:

Bei der Installation von PostgresSQL via der Postgres-App habe ich aber kein Passwort für den Benutzer "postgres" vergeben. Die Datenbank "postgres" und der Benutzer "Postgres" wurden aber installiert. Wenn ich nun in o.a. Terminal-Befehl nach dem Passwort für postgres gefragt werde, muss ich passen weil ich es nicht weiss. Einfach die Eingabetaste drücken funktioniert wie erwartet nicht. Gibt es ein "Default-PW" für den Benutzer "postgres" oder eine Methode ein neues PW für ihn zu setzen (wahrscheinlich brauche ich dafür aber auch das alte PW)?
 
Da wird nach dem Passwort für den Mac User "postgres" gefragt. Wie man das Passwort eines Mac Users ändert kann ich aber nicht sagen. In einem Linux würde man das via passwd machen (wenn man sich als root einloggen kann).
 
Ja, das habe ich mir schon gedacht. Als ich die Postgres-App noch nicht benutzt hatte und das "normale" PostgresSQL installiert hatte, wurde auch ein Mac User "postgres" eingerichtet. Nachdem ich Postgres jedoch deinstalliert hatte - eine Voraussetzung für eine saubere Postgres-App Installation - gibt es keinen Mac User "postgres" mehr. Die Postgres-App hat keinen eingerichtet.
Natürlich könnte ich leicht selber einen einrichten und ein Passwort festlegen aber dann stellt sich die Frage welche Rechte soll/muss dieser Benutzer haben und der hätte dann ja nichts mit dem PostgresSQL-Server-User "postgres" zu tun. Irgendetwas verstehe ich hier noch nicht richtig.

Außerdem müsste man dann ja auch
Code:
#start postgres
 $ sudo su name_des_normalen_Mac_Admin
$ password:

verwenden können oder?
 
Zuletzt bearbeitet:
Unter Linux muss man nach su ein - eingeben, dann startet postgres ohne Passwort.
Code:
sudo su - postgres ...
vieleicht geht das unter MacOS auch so.
 
Werbung:
@magpie: Leider nicht aber trotzdem vielen Dank für Deinen Post.

Wenn ich mich als Admin des Computers einlogge und dann folgenden Befehl eingebe,
Code:
bash-3.2$ sudo pg_ctl -D /Users/DasDatenVerzeichnis/Postgres/var-11 stop
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
bekomme ich den Hinweis mich als "user that will own the server process." einzuloggen (s. Codebeispiel).

Ob es funktionieren würde, wenn ich auf dem Computer jetzt noch einen Benutzer "postgres mit sudo-Rechten" einrichten würde, weiss ich nicht. Da mein ursprünglicher Wunsch, den Server auf einfache Weise nach belieben starten und stoppen zu können, durch die Postgres-App erfüllt ist, werde ich das Ganze auch nicht weiter verfolgen. Es sei denn Jemand hat noch eine geniale Idee:
 
Zurück
Oben