logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 17-04-2018 09:43:55

amprxc
Membre
Inscription : 16-04-2018

lancer un script au démarrage

bonjour,

Je souhaiterais exécuter un script au démarrage, mais je n'y parviens pas...
J'ai essayé avec la crontab :

crontab -e
@reboot sh /root/Documents/iptables.sh



ou alors

@reboot /root/Documents/iptables.sh



J'ai aussi ajouté mon script à /etc/init.d/
Je l'ai chmod +x
J'ai ajouté le lien symbolique

ln -s /etc/init.d/iptables.sh /etc/rc.d/



j'ai ajouté le LSB au début du script

Mais le script ne se lance toujours pas...

Quelqu'un pour m'aider ?

Merci

Hors ligne

#2 17-04-2018 09:54:09

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : lancer un script au démarrage

Salut
La méthode souvent employé est de mettre un fichier desktop dans le fichier autostart de ton fichier dossier .config
exemple pour le script des mises à jour

cat /home/stephane/.config/autostart/updates_notifier.desktop


[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Update notifier
Comment=notify available updates
Comment[fr]=notification des mises à jour disponibles
Exec=/usr/bin/handy-update-notifier
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false

Dernière modification par Croutons (17-04-2018 09:54:42)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#3 17-04-2018 10:12:52

amprxc
Membre
Inscription : 16-04-2018

Re : lancer un script au démarrage

Croutons a écrit :

Salut
La méthode souvent employé est de mettre un fichier desktop dans le fichier autostart de ton fichier dossier .config
exemple pour le script des mises à jour

cat /home/stephane/.config/autostart/updates_notifier.desktop


[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Update notifier
Comment=notify available updates
Comment[fr]=notification des mises à jour disponibles
Exec=/usr/bin/handy-update-notifier
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false



merci de cette réponse.
Malheureusement ça ne fonctionne pas...
j'ai fait :

nano /root/;config/autostart-scripts/iptables.desktop


dedans j'ai mis ce que tu m'as donné et j'ai remplacé cette ligne :

Exec=/root/Documents/iptables.sh



Mais ça ne fonctionne pas.
Après je précise que j'ai créé le script en tant que root, et qu'il y a des commandes iptables et que je modifie resolv.conf dedans, donc il faut être root pour l'exécuter...

EDIT :
le fichier existe pourtant au chemin que j'indique :

root@debian:~/Documents# ls -l
total 4
-rwxr-xr-x 1 root root 3556 Apr 17 04:10 iptables.sh
root@debian:~/Documents# pwd
/root/Documents
root@debian:~/Documents#
 

Dernière modification par amprxc (17-04-2018 10:31:20)

Hors ligne

#4 17-04-2018 10:40:20

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : lancer un script au démarrage

Croutons a écrit :

La méthode souvent employé est de mettre un fichier desktop dans le fichier autostart de ton fichier dossier .config
exemple pour le script des mises à jour


Euh… pour un pare-feu, il vaut mieux le lancer au démarrage du système.

Utiliser la crontab de l'utilisateur root, n'est certainement pas la bonne
méthode.  Si ça ne marche pas quand on le mets dans /etc/rc*.d/, c'est parce
qu'il est très probable que le système d'init employé est systemd. Il faudrait un petit
fichier unit pour systemd comme celui-ci


[Unit]
Description=Setup firewall
After=network.target local-fs.target

[Service]
RemainAfterExit=true
ExecStart=/root/Documents/iptables.sh

[Install]
WantedBy=multi-user.target
 


Ce fichier que l'on peut appeler iptables.service, est
à mettre dans /etc/systemd/system/
Ensuite il faut activer le service :


systemctl enable iptables.service
 


Normalement il devrait être pris en compte au prochain démarrage.
Mais évidemment, il faut que le script iptables.sh ne contiennent
pas d'erreur pour que ça marche. Et pour cela vérifié que
le script lancé manuellement fonctionne et produit bien le résultat attendu,
en faisant :


/root/Documents/iptables.sh
 

Dernière modification par enicar (17-04-2018 10:42:20)

Hors ligne

#5 17-04-2018 10:55:46

amprxc
Membre
Inscription : 16-04-2018

Re : lancer un script au démarrage

enicar a écrit :

Croutons a écrit :

La méthode souvent employé est de mettre un fichier desktop dans le fichier autostart de ton fichier dossier .config
exemple pour le script des mises à jour


Euh… pour un pare-feu, il vaut mieux le lancer au démarrage du système.

Utiliser la crontab de l'utilisateur root, n'est certainement pas la bonne
méthode.  Si ça ne marche pas quand on le mets dans /etc/rc*.d/, c'est parce
(très probable) que le système d'init employé est systemd. Il faudrait un petit
fichier unit pour systemd comme celui-ci


[Unit]
Description=Setup firewall
After=network.target local-fs.target

[Service]
RemainAfterExit=true
ExecStart=/root/Documents/iptables.sh

[Install]
WantedBy=multi-user.target
 


Ce fichier que l'on peut appeler iptables.service, est
à mettre dans /etc/systemd/system/
Ensuite il faut activer le service :


systemctl enable iptables.service
 


Normalement il devrait être pris en compte au prochain démarrage.
Mais évidemment, il faut que le script iptables.sh ne contiennent
pas d'erreur pour que ça marche. Et pour cela vérifié que
le script lancé manuellement fonctionne et produit bien le résultat attendu,
en faisant :


/root/Documents/iptables.sh
 



ça a fonctionné ! merci beaucoup !

Hors ligne

Pied de page des forums