Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/06/2024, à 13:00

iznobe

[ resolu ] fonctionnement des services et modifier apache

Bonjour , j' aimerais mieux comprendre les services .

j ' ai trouvé cette page qui explique plutot bien comment modifié et apprehender la chose : https://www.digitalocean.com/community/ … d-units-fr .

j ' aimerais faire en sorte que mon serveur apache2 ne demarre qu ' apres avoir monté /var/log en RAM .

est ce possible ? je pense que oui , mais comment ?

quel est le role des " After et Before " ?

Dernière modification par iznobe (Le 16/06/2024, à 10:56)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#2 Le 14/06/2024, à 15:13

O_20_100_O

Re : [ resolu ] fonctionnement des services et modifier apache

Bonjour,
https://zarak.fr/sre/systemd-dependencies/
https://www.baeldung.com/linux/systemd- … tart-order

Si je devais faire cela, je créerais un service pour monter /var/log en RAM , puis je modifierais le service qui lance apache pour qu'il soit "after" celui qui lance le montage des logs.

Dernière modification par O_20_100_O (Le 14/06/2024, à 15:14)

Hors ligne

#3 Le 14/06/2024, à 17:23

iznobe

Re : [ resolu ] fonctionnement des services et modifier apache

Salut O_20_100_O , il semble qu ' il existe deja un service qui se nomme a priori : var-log.mount qui se charge dejà de monter /var/log en RAM .
Par contre , lorsque j' essaie de modifier le service apache , j ' obtiens chaque fois une erreur , peut etre que je m' y prends mal .

lorsque j' edite le service apache avec la commande suivante :

sudo systemctl edit apache2.service

puis que je reload le service apache , j ' obtiens une erreur comme quoi le fichier override.conf n' est pas conforme .
du coup , je suppose que ce que je met ne vas pas , que faudrait il mettre dedans ce fichier ?


EDIT : je viens de recommencer , cela semble maintenant fonctionner correctement ...



il ne reste plus qu ' a gerer la creation du repertoire et des permissions du dossier .
Pour cela quelle serait la façon la plus " propre " de realiser cette affaire ? un service si j ' ai bien compris ?

Dernière modification par iznobe (Le 14/06/2024, à 17:31)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#4 Le 14/06/2024, à 17:56

iznobe

Re : [ resolu ] fonctionnement des services et modifier apache

j ' ai créé un service nommé logtoram :

pi@e-pi3:~ $ systemctl cat logtoram.service
# /etc/systemd/system/logtoram.service
[Unit]
Description=After mounting /var/log , create some directories for all working as expacted for apache fail2ban and rc.local
Documentation=
Before=apache2.service
Wants=var-log.mount
 
[Service]
Type=simple
ExecStart=/usr/bin/logtoram
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
pi@e-pi3:~ $

et le fichier suivant :

pi@e-pi3:~ $ cat /usr/bin/logtoram
#!/bin/bash

if [ -d "/var/log/apache2" ];then
        echo "Le dossier1 existe !";
else
        mkdir /var/log/apache2
        chown -R root:adm /var/log/apache2
        systemctl restart apache2
fi
pi@e-pi3:~ $

puis activation du service :

systemctl enable logtoram.service

et lancement :

systemctl start logtoram.service

Pour le moment ce n' est pas concluant :

pi@e-pi3:~ $ sudo systemctl status logtoram.service
● logtoram.service - After mounting /var/log , create some directories for all working as expacted for apache fail2ban and rc.local
     Loaded: loaded (/etc/systemd/system/logtoram.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2024-06-14 18:02:27 CEST; 12s ago
    Process: 3412 ExecStart=/usr/bin/logtoram (code=exited, status=203/EXEC)
   Main PID: 3412 (code=exited, status=203/EXEC)
        CPU: 4ms

juin 14 18:02:27 e-pi3 systemd[1]: logtoram.service: Scheduled restart job, restart counter is at 5.
juin 14 18:02:27 e-pi3 systemd[1]: Stopped After mounting /var/log , create some directories for all working as expacted for apache fail2ban and rc.local.
juin 14 18:02:27 e-pi3 systemd[1]: logtoram.service: Start request repeated too quickly.
juin 14 18:02:27 e-pi3 systemd[1]: logtoram.service: Failed with result 'exit-code'.
juin 14 18:02:27 e-pi3 systemd[1]: Failed to start After mounting /var/log , create some directories for all working as expacted for apache fail2ban and rc.local.
pi@e-pi3:~ $

Dernière modification par iznobe (Le 14/06/2024, à 18:23)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#5 Le 16/06/2024, à 10:55

iznobe

Re : [ resolu ] fonctionnement des services et modifier apache

Bonjour ,
finalement apres , avoir regardé comment fonctionne d' autres services en particulier pihole , je me suis dis que c' etait plus simple de faire comme eux ont fait .

j ' ai donc crée le fichier suivant :

pi@e-pi3:~ $ cat /usr/bin/apache2ram-prestart.sh 
#!/usr/bin/env sh

[ -d /var/log/apache2 ] || mkdir /var/log/apache2
chown -R root:adm /var/log/apache2
pi@e-pi3:~ $

le rendre executable bien sur :

sudo chmod +x /usr/bin/apache2ram-prestart.sh

puis editer le service apache comme suit :

sudo systemctl edit apache2.service

en y inserant cela :

## Editing /etc/systemd/system/apache2.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Service]
ExecStartPre=/usr/bin/apache2ram-prestart.sh

### Lines below this comment will be discarded

### /lib/systemd/system/apache2.service
# [Unit]
# Description=The Apache HTTP Server
# After=network.target remote-fs.target nss-lookup.target
# Documentation=https://httpd.apache.org/docs/2.4/
# 
# [Service]
# Type=forking
# Environment=APACHE_STARTED_BY_SYSTEMD=true
# ExecStart=/usr/sbin/apachectl start
# ExecStop=/usr/sbin/apachectl graceful-stop
# ExecReload=/usr/sbin/apachectl graceful
# KillMode=mixed
# PrivateTmp=true
# Restart=on-abort
# 
# [Install]
# WantedBy=multi-user.target

Apres un redemarrage , tout est parfait :

pi@e-pi3:~ $ df -TH | grep log
tmpfs            tmpfs      105M    500k  105M   1% /var/log
pi@e-pi3:~ $
pi@e-pi3:~ $ sudo systemctl status apache2.service
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabl>
    Drop-In: /etc/systemd/system/apache2.service.d
             └─override.conf
     Active: active (running) since Sun 2024-06-16 10:45:35 CEST; 8min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 703 (apache2)
      Tasks: 9 (limit: 2086)
        CPU: 2.485s
     CGroup: /system.slice/apache2.service
             ├─ 703 /usr/sbin/apache2 -k start
             ├─ 745 /usr/sbin/apache2 -k start
             ├─ 746 /usr/sbin/apache2 -k start
             ├─ 747 /usr/sbin/apache2 -k start
             ├─ 748 /usr/sbin/apache2 -k start
             ├─ 749 /usr/sbin/apache2 -k start
             ├─ 984 /usr/sbin/apache2 -k start
             ├─1001 /usr/sbin/apache2 -k start
             └─1239 /usr/sbin/apache2 -k start

juin 16 10:45:33 e-pi3 systemd[1]: Starting The Apache HTTP Server...
juin 16 10:45:35 e-pi3 systemd[1]: Started The Apache HTTP Server.
pi@e-pi3:~ $ sudo systemctl cat apache2.service
# /lib/systemd/system/apache2.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=https://httpd.apache.org/docs/2.4/

[Service]
Type=forking
Environment=APACHE_STARTED_BY_SYSTEMD=true
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl graceful-stop
ExecReload=/usr/sbin/apachectl graceful
KillMode=mixed
PrivateTmp=true
Restart=on-abort

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/apache2.service.d/override.conf
[Service]
ExecStartPre=/usr/bin/apache2ram-prestart.sh
pi@e-pi3:~ $

Merci .

Dernière modification par iznobe (Le 23/08/2024, à 11:40)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne