<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>apachectl - L'interface de contrôle du serveur HTTP
  Apache - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Programmes</a></div><div id="page-content"><div id="preamble"><h1>apachectl - L'interface de contrôle du serveur HTTP
  Apache</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/programs/apachectl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/apachectl.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/apachectl.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/apachectl.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>

     <p><code>apachectl</code> est un frontal pour le serveur HTTP
     Apache. Il a été conçu pour aider l'administrateur à contrôler le
     fonctionnement du démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>

     <p>Le script <code>apachectl</code> possède deux modes de
     fonctionnement. Il peut fonctionner en tant que simple frontal
     de la commande <code class="program"><a href="../programs/httpd.html">httpd</a></code> et ne fait alors que
     définir toute variable d'environnement nécessaire, puis invoque
     <code class="program"><a href="../programs/httpd.html">httpd</a></code> en lui passant tout argument de ligne de
     commande souhaité. Il peut aussi fonctionner en tant que script
     d'initialisation SysV n'acceptant qu'un seul argument tel que
     <code>start</code>, <code>restart</code> et <code>stop</code>, et
     traduisant ce dernier en signaux appropriés pour le démon
     <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>

     <p>Si votre installation d'Apache utilise des chemins non
     standards, vous devrez éditer le script <code>apachectl</code> afin
     de définir les chemins appropriés pour le binaire
     <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Vous pouvez aussi spécifier tout argument
     de ligne de commande de <code class="program"><a href="../programs/httpd.html">httpd</a></code> nécessaire. Voir
     les commentaires dans le script pour plus de détails.</p>

     <p>Le script <code>apachectl</code> renvoie une valeur égale à 0 en
     cas de succès, et une valeur supérieure à 0 en cas de problème.
     Voir les commentaires dans le script pour plus de détails.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Résumé</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../invoking.html">Démarrer Apache</a></li><li><a href="../stopping.html">Arrêter Apache</a></li><li><a href="../configuring.html">Fichiers de
configuration</a></li><li><a href="../platform/">Documentation spécifique aux
plates-formes</a></li><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="synopsis" id="synopsis">Résumé</a></h2>

<p>En mode frontal (pass-through), <code>apachectl</code> peut spécifier
tous les arguments qu'accepte le binaire <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>

<p><code><strong>apachectl</strong> [ <var>argument-httpd</var> ]</code></p>

<p>En mode script d'initialisation SysV, <code>apachectl</code>
n'accepte qu'un seul des arguments définis ci-dessous.</p>

<p><code><strong>apachectl</strong> <var>commande</var></code></p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="options" id="options">Options</a></h2>

<p>Seules les options du style initialisation SysV sont décrites ici.
Les autres arguments sont décrits dans la page de manuel de
<code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>

<dl>

<dt><code>start</code></dt>

<dd>Démarre le démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Renvoie une erreur
s'il est déjà en cours d'exécution. Équivalent à <code>apachectl -k
start</code>.</dd>

<dt><code>stop</code></dt>

<dd>Arrête le démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Équivalent à
<code>apachectl -k stop</code>.</dd>

<dt><code>restart</code></dt>

<dd>Redémarre le démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Si le démon
n'est pas en cours d'exécution, il est démarré. Cette option vérifie
automatiquement les fichiers de configuration (de la même manière que
l'option <code>configtest</code> ) avant de lancer le redémarrage, afin
d'être sûr que le fonctionnement du démon ne sera pas compromis.
Equivalent à <code>apachectl -k restart</code>.</dd>

<dt><code>fullstatus</code></dt>

<dd>Affiche le rapport d'état complet du module
<code class="module"><a href="../mod/mod_status.html">mod_status</a></code>. Pour que ceci fonctionne,
<code class="module"><a href="../mod/mod_status.html">mod_status</a></code> doit être activé dans votre serveur et vous
devez disposer d'un navigateur en mode texte tel que <code>lynx</code>
sur votre système. L'URL utilisée pour accéder au rapport d'état peut
être modifiée en définissant la variable <code>STATUSURL</code> dans le
script.</dd>

<dt><code>status</code></dt>

<dd>Affiche un rapport d'état succinct. Similaire à l'option
<code>fullstatus</code>, excepté que la liste des requêtes en cours de
traitement est omise.</dd>

<dt><code>graceful</code></dt>

<dd>Redémarre le démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code> en douceur. Si le
démon n'est pas en cours d'exécution, il est démarré. À la différence
d'un redémarrage normal, les connexions en cours ne sont pas fermées.
Comme effet de bord, les anciens fichiers journaux ne seront pas fermés
immédiatement. Cela signifie que si l'on utilise un script de rotation
des journaux, un délai suffisant sera nécessaire afin d'être sûr que les
fichiers journaux seront bien fermés avant leur traitement par le script
de rotation. Cette option vérifie
automatiquement les fichiers de configuration (de la même manière que
l'option <code>configtest</code> ) avant de lancer le redémarrage, afin
d'être sûr que le fonctionnement du démon ne sera pas compromis.
Équivalent à <code>apachectl -k graceful</code>.</dd>

<dt><code>graceful-stop</code></dt>

<dd>Arrête le démon Apache <code class="program"><a href="../programs/httpd.html">httpd</a></code> en douceur. À la
différence d'un arrêt normal, les connexions en cours ne sont pas
fermées. Comme effet de bord, les anciens fichiers journaux ne seront
pas fermés immédiatement. Équivalent à <code>apachectl -k
graceful-stop</code>.</dd>

<dt><code>configtest</code></dt>

<dd>Effectue une vérification de la syntaxe du fichier de configuration.
Avec cette option, le script parcourt le fichier de configuration et
renvoie soit <code>Syntax Ok</code>, soit des informations détaillées à
propos des éventuelles erreurs de syntaxe. Equivalent à <code>apachectl
-t</code>.</dd>

</dl>

<p>Les options suivantes étaient disponibles dans les anciennes versions
et ont été supprimées.</p>

<dl>

<dt><code>startssl</code></dt>

<dd>Pour démarrer <code class="program"><a href="../programs/httpd.html">httpd</a></code> avec le support SSL, vous
devez éditer votre fichier de configuration et y inclure les
directives appropriées, puis utiliser la commande de démarrage normale
<code>apachectl start</code>.</dd>

</dl>

</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/programs/apachectl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/apachectl.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/apachectl.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/apachectl.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/programs/apachectl.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>