.. _service_management:

##################
Gestion du service
##################


Avec systemd
============

Sur les systèmes fonctionnant avec ``systemd``, dont RHEL 7, les
commandes usuelles de gestion des services peuvent être utilisées.

L'unité ``systemd`` pour Waarp Transfer est fournie dans les packages sur les
systèmes utilisant ``systemd``. Si vous utilisez les archives autonomes,
voir ci-dessous la :ref:`procédure d'ajout du service <systemd-service-unit>`.


.. code-block:: bash

   # Démarrage du service
   systemctl start waarp-transferd

   # Arrêt du service
   systemctl stop waarp-transferd

   # Statut du service
   systemctl status waarp-transferd

   # Redémarrage du service
   systemctl restart waarp-transferd

   # Activation du service au démarrage du serveur
   systemctl enable waarp-transferd

   # Désactivation du service au démarrage du serveur
   systemctl disable waarp-transferd



.. _systemd-service-unit:

Utilisation de systemd avec les archives autonomes
--------------------------------------------------

Si votre système d'exploitation utilise ``systemd``, vous pouvez gérer
votre instance de Waarp Transfer avec.

Créez le fichier ``/etc/systemd/system/waarp-transfer.service`` avec le
contenu suivant, en remplaçant ``/path/to/archive/root`` par le chemin
vers le dossier d'extraction de l'archive :

.. code-block:: ini

   [Unit]
   Description=Waarp Transfer server

   [Service]
   Type=simple
   WorkingDirectory=/path/to/archive/root
   ExecStart=/bin/sh -c 'PATH=./share/:./bin/:$PATH exec ./bin/waarp-transferd server -c ./etc/transferd.ini'
   Restart=on-failure

   [Install]
   WantedBy=multi-user.target

Pour activer le démarrage automatique de Waarp Transfer au démarrage du
serveur, utilisez la commande :

.. code-block:: bash

   systemctl enable waarp-transferd


Avec SysVinit
=============

Sur les systèmes fonctionnant avec ``SysVinit``, dont RHEL 6, les
commandes usuelles de gestions des services peuvent être utilisées.

Le script d'init pour Waarp Transfer est fourni dans les packages sur les
systèmes utilisant ``SysVinit``.


.. code-block:: bash

   # Démarrage du service
   /etc/init.d/waarp-transferd start

   # Arrêt du service
   /etc/init.d/waarp-transferd stop

   # Statut du service
   /etc/init.d/waarp-transferd status

   # Redémarrage du service
   /etc/init.d/waarp-transferd restart

   # Activation du service au démarrage du serveur
   update-rc.d waarp-transferd defaults # Systèmes basés sur Debian
   chkconfig --add waarp-transferd      # Systèmes basés sur Red Hat

   # Désactivation du service au démarrage du serveur
   update-rc.d -f waarp-transferd remove # Systèmes basés sur Debian
   chkconfig --del waarp-transferd       # Systèmes basés sur Red Hat



Avec les archives autonomes
===========================

Linux
-----

Le service se gère avec le script ``manage.sh`` situé dans le dossier
``bin`` à la racine du dossier d'extraction de l'archive :

.. code-block:: bash

  ./bin/manage.sh <commande>

Les commandes suivantes sont disponibles :

Commande ``manage.sh start``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Démarre Waarp Transfer.

.. note::

  Si le port choisi est inférieur à 1024, le service doit être lancé
  avec l'utilisateur root.

Le nombre de CPU utilisés par Waarp Transfer peut être défini par la
variable d’environnement :envvar:`GOMAXPROCS`. Par défaut, le nombre de cœurs
CPU du serveur est utilisé.

Codes de retour :

===== =============
Code  Signification
===== =============
``0`` Le lancement de l'application a réussi
``1`` Le lancement a échoué. La raison de l'échec peut se trouver un des :ref:`fichiers de traces <log-management>`.
``2`` Le serveur est déjà lancé
===== =============



Commande ``manage.sh stop``
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Lance la procédure d'arrêt de Waarp Transfer. Le script attend 2 minutes
que Waarp Transfer s'arrête. Passé ce délais, le script rend la main,
**mais la procédure d'arrêt continue. L'arrêt définitif de Waarp Transfer
interviendra dès que tous les processus internes en cours seront terminés**.
Les codes retours suivants sont possibles :

Codes de retour :

===== =============
Code  Signification
===== =============
``0`` L'arrêt de l'application a réussi
``1`` L'arrêt a échoué. La raison de l'échec peut se trouver un des :ref:`fichiers de traces <log-management>`.
``2`` Le serveur est déjà arrêté
``3`` L'arrêt est en cours, mais la procédure d'arrêt n'est pas encore terminée.
===== =============



Commande ``manage.sh restart``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Redémarre Waarp Transfer.

===== =================================
Code  Signification
===== =================================
``0`` Le redémarrage de l'application a réussi
``1`` Le redémarrage a échoué. La raison de l'échec peut se trouver un des :ref:`fichiers de traces <log-management>`.
``2`` Le serveur est déjà arrêté
``3`` Le redémarrage est en cours, mais la procédure d'arrêt n'est pas encore terminée.
===== =================================



Commande ``manage.sh force-stop``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Envoi un signal ``KILL`` à Waarp Transfer

Codes de retour :

===== =============
Code  Signification
===== =============
``0`` L'application est démarrée.
``1`` L'application est arrêtée.
``2`` Le fichier contenant l'identifiant du processus n'a pas été trouvé ou ne peut pas être lu. Le statut est inconnu
===== =============




Commande ``manage.sh status``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Retourne l'état démarré/arrêté du serveur. Les codes retours suivants
sont possibles :

===== =============
Code  Signification
===== =============
``0`` L'application est démarrée.
``1`` L'application est arrêtée.
``2`` Le fichier contenant l'identifiant du processus n'a pas été trouvé ou ne peut pas être lu. Le statut est inconnu
===== =============


Windows
-------

Aucune gestion du service n'est actuellement fourni pour Windows. Le
gestionnaire de service de l'OS peut cependant être utilisé.
