#1 Le 14/06/2024, à 12: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, à 09:56)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#2 Le 14/06/2024, à 14: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, à 14:14)
Hors ligne
#3 Le 14/06/2024, à 16: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, à 16:31)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#4 Le 14/06/2024, à 16: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, à 17:23)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#5 Le 16/06/2024, à 09: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, à 10:40)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne