Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
pg_ctl start [-w] [-s] [-D répertoire_données] [-l nomfichier] [-o options] [-p chemin]
pg_ctl stop [-W] [-s] [-D répertoire_données] [-m
s[mart] | f[ast] | i[mmediate]
]
pg_ctl restart [-w] [-s] [-D répertoire_données] [-m
s[mart] | f[ast] | i[mmediate]
] [-o options]
pg_ctl reload [-s] [-D répertoire_données]
pg_ctl status [-D répertoire_données]
pg_ctl kill [nom_signal] [id_processus]
pg_ctl register [-N nom_service] [-U nom_utilisateur] [-P mot_de_passe] [-D répertoire_données] [-w] [-o options]
pg_ctl unregister [-N nom_service]
pg_ctl est un outil de lancement, d'arrêt et de redémarrage du serveur PostgreSQL (postmaster). Il permet aussi d'afficher le statut d'un serveur en cours d'exécution. Bien que le serveur doive être lancé manuellement, pg_ctl encapsule les tâches comme la redirection des traces ou le détachement du terminal et du groupe de processus. Il fournit aussi des options intéressantes pour un arrêt contrôlé.
Dans le mode start, un nouveau serveur est lancé. Le serveur est lancé en tâche de fond et l'entrée standard est attachée à /dev/null. La sortie standard et la sortie d'erreurs standard sont soit envoyées dans un journal de traces (si l'option -l est utilisée) soit redirigées dans la sortie standard de pg_ctl (et non pas la sortie d'erreurs standard). Si aucun journal de traces n'est donné, la sortie standard de pg_ctl devrait être redirigée dans un fichier ou envoyée via un tube à un autre processus, par exemple un programme de rotation de journaux de trace, comme rotatelogs sinon postmaster écrit sa sortie dans le terminal de contrôle (à partir de l'arrière-plan) et ne se détache pas du groupe de processus du shell.
Dans le mode stop, le serveur en cours d'exécution dans le répertoire spécifié est arrêté. Trois méthodes différentes d'arrêt peuvent être choisies avec l'option -m : le mode << Smart >> attend la déconnexion de tous les clients. C'est la valeur par défaut. Le mode << Fast >> n'attend pas la déconnexion des clients. Toutes les transactions actives sont annulées et les clients sont forcés à se déconnecter. Le serveur est ensuite arrêté. Le mode << Immediate >> tue tous les processus serveurs sans leur laisser la possibilité de faire un arrêt propre. Ceci amènera une tentative de récupération au prochain lancement.
Le mode restart exécute en fait un arrêt suivi d'un lancement. Ceci permet de modifier les options en ligne de commande de postmaster.
Le mode reload envoie simplement au processus postmaster un signal SIGHUP ce qui le fait relire ses fichiers de configuration (postgresql.conf, pg_hba.conf, etc.). Ceci permet de modifier les options du fichier de configuration sans nécessiter un redémarrage complet pour que les modifications soient prises en compte.
Le mode status vérifie si un serveur est toujours en cours d'exécution sur le répertoire de données spécifié. Si c'est le cas, le PID et les options en ligne de commande utilisées lors de son lancement sont affichés.
Le mode kill vous permet d'envoyer un signal à un processus spécifique. Ceci est particulièrement utile pour Microsoft Windows, qui ne possède pas de commande kill. Utilisez --help pour voir une liste des noms de signaux supportés.
Le mode register vous permet d'enregistrer un service système sur Microsoft Windows.
Le mode unregister vous permet d'annuler un service système sur Microsoft Windows, précédemment enregistré avec la commande register.
Spécifie l'emplacement des fichiers de la base de données sur le système de fichiers. Si cette option est omise, la variable d'environnement PGDATA est utilisée.
Ajoute la sortie des traces du serveur dans nomfichier. Si le fichier n'existe pas, il est créé. L'umask est configuré à 077, donc l'accès au journal des traces est interdit aux autres utilisateurs par défaut.
Spécifie le mode d'arrêt. mode fait partie de smart, fast ou immediate, ou encore de la première lettre d'un de ces trois-là.
Spécifie les options à passer directement à la commande postmaster.
Les options sont habituellement entourées par des guillemets simples ou doubles pour s'assurer qu'elles sont passées comme un groupe.
Spécifie l'emplacement de l'exécutable postmaster. Par défaut, l'exécutable postmaster est pris à partir du même répertoire que pg_ctl ou, si cela échoue, à partir du répertoire d'installation codé en dur. Il n'est pas nécessaire d'utiliser cette option sauf si vous faites quelque chose d'inhabituel et obtenez des erreurs comme quoi l'exécutable postmaster serait introuvable.
Affiche seulement les erreurs, pas les messages d'information.
Attend la fin du lancement ou de l'arrêt. S'interrompt au bout de 60 secondes. Ceci est la valeur par défaut pour les arrêts. Un arrêt avec succès est indiqué par la suppression du fichier PID. Pour le lancement, un psql -l se terminant avec succès indique que tout va bien. pg_ctl tente d'utiliser le bon port pour psql. Si la variable d'environnement PGPORT existe, elle est utilisée. Sinon, il cherche si un port a été configuré dans le fichier postgresql.conf. Si aucun des deux n'est utilisé, il utilise le port par défaut avec lequel PostgreSQL a été compilé (5432 par défaut). S'il a attendu, pg_ctl renvoie un code de sortie précis basé sur le succès du démarrage ou de l'arrêt.
Ne pas attendre le lancement ou l'arrêt pour se terminer. Ceci est la valeur par défaut pour les lancements et redémarrages.
Nom du service système à enregistrer. Le nom est utilisé à la fois comme nom de service et comme nom affiché.
Mot de passe de l'utilisateur pour lancer le service.
Nom de l'utilisateur qui va lancer le service. Pour les utilisateurs de domaine, utilisez le format DOMAIN\nom_utilisateur.
Emplacement du répertoire des données par défaut.
Port par défaut pour psql (utilisé par l'option -w).
Pour les autres, voir postmaster.
Ce fichier dans le répertoire des données est utilisé pour aider pg_ctl à déterminer si le serveur est actuellement en cours d'exécution.
Si ce fichier existe dans le répertoire des données, pg_ctl (dans le mode start) passe le contenu du fichier comme options de la commande postmaster, sauf en cas de surcharge par l'option -o. Le contenu de ce fichier est aussi affiché en mode status
Si ce fichier existe dans le répertoire des données, pg_ctl (en mode restart) passe le contenu du fichier comme options de postmaster, sauf en cas de surcharge par l'option -o.
Ce fichier, situé dans le répertoire des données, est analysé pour trouver le bon port à utiliser avec psql lorsque -w est donné en mode start.
Attendre le lancement complet n'est pas une opération bien définie et peut échouer si le contrôle d'accès est configuré pour qu'un client local ne puisse pas se connecter sans interaction manuelle (par exemple, une authentification par mot de passe).
Pour lancer un serveur :
$ pg_ctl start
Un exemple de lancement de serveur, bloquant tant que le serveur n'est pas complètement lancé :
$ pg_ctl -w start
Pour un serveur utilisant le port 5433 et s'exécutant sans
fsync
, utilisez :
$ pg_ctl -o "-F -p 5433" start
$ pg_ctl stop
arrête le serveur. Utiliser l'option -m vous permet de contrôler comment le serveur s'arrête.
Relancer le serveur est pratiquement équivalent à l'arrêter puis à le relancer de nouveau sauf que pg_ctl sauvegarde et réutilise les options en ligne de commande qui ont été passées à l'instance précédente. Pour relancer le serveur de la façon la plus simple, utilisez :
$ pg_ctl restart
Pour relancer le serveur, en attendant qu'il s'arrête puis qu'il se relance :
$ pg_ctl -w restart
Pour relancer en utilisant le port 5433 et en désactivant
fsync
après redémarrage :
$ pg_ctl -o "-F -p 5433" restart
Voici un exemple de statut affiché à partir de pg_ctl :
$ pg_ctl status pg_ctl: postmaster is running (pid: 13718) Command line was: /usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
Ceci est la ligne de commande qui serait appelée en mode relance.
Précédent | Sommaire | Suivant |
pg_controldata | Niveau supérieur | pg_resetxlog |