Forum Linux.mandriva lancement de script au démarrage

Posté par  .
Étiquettes : aucune
0
14
avr.
2005
Salut

J'ai écrit un script pour Netfilter que j'ai appelé parfeu (qui se trouve pour l'instant dans /home)
Ce script fonctionne trés bien, dés que je le lance en faisant: ./parfeu.

Mais impossible de le lancer au démarrage ( et c'est la première fois que je rencontre ce pb, car j'ai déjà lancé des scripts au démarrage):
Je procède de la manière suivante:

je créé un lien dans /etc/rc5.d vers mon fichier:
ln -s /home/parfeu /etc/rc5.d/S82parfeu

je redémarre, fait iptables -L -v: rien n'a été chargé !

autre essai: je mets directement le parfeu ( et pas un lien )dans rc5.d : idem, rien ne se charge après un redémarrage.
aure essai: je mets le parfeu dans /etc/init.d: idem, rien ne se passe...

Je lance des scripts au démarrage sans pb habituellement, mais là, impossible.
Que se passe-t-il ? ( Est-ce parceque le script utilise iptables...)

Merci
  • # bon je t'aide, mais tu me plussoie...

    Posté par  (site web personnel) . Évalué à 1.

    Il faut que ton script soit executé au démarage, le problème est que tu n'a pas du le conçevoir comme sysV en a besoin pour l'utiliser...

    Typiquement, quand j'ai un tel script a faire j'utilise /etc/init.d/numlock comme script de base car il est bien fait...

    L'explication : au démarage tout les script mis dans /etc/rcx.d avec un Sxx vont être lancé dans l'ordre du xx, mais ces scripts ne sont pas lancé comme ça, ils sont lancé avec un argument : start, stop, restart, etc...

    donc tu a besoin de gérer cet argument.

    Script de démarage bien fait :
    #!/bin/sh
    # Startup script for XXX
    #
    # description: Run XXX at init runlevel change
    # chkconfig: 345 29 15
    # ci dessus les runlevel dans lesquel il est lancé puis les position de
    # départ et d'arrêt

    # Source function library.
    . /etc/rc.d/init.d/functions
    # c'est pour faire zoli avec un OK ou error en couleur

    SYSCONF_FILE=/var/lock/subsys/XXX
    # See how we were called.
    case "$1" in
    start)
    gprintf "Starting XXX: "
    # ajoute tes commandes ici...
    echo_success
    echo
    touch $SYSCONF_FILE
    ;;
    stop)
    gprintf "Disabling numlocks on ttys: "
    # ajoute tes commandes ici...
    echo_success
    echo
    rm -f $SYSCONF_FILE
    ;;
    status)
    if [ -f $SYSCONF_FILE ]
    then
    gprintf "XXX is enabled\n"
    else
    gprintf "XXX is disabled\n"
    fi
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    reload)
    gprintf "Reloading XXX: "
    $0 start
    echo
    ;;
    *)
    gprintf "Usage: %s {start|stop|restart|reload|status}\n" "$0"
    exit 1
    esac

    exit 0

    Et vala tu a toute les cartes en main désormais...

    ps : il y a shorewall qui te permet de paramètrer ton firewall et un outil dans le paquet drakwizard qui permet de le configurer en graphique...
  • # pas dans le niveau 5

    Posté par  . Évalué à 2.

    lancer tes règles de firewall au niveau 5 n'est pas recommandé

    tu pourrais perdre les services donnés par ces règles ne serait-ce qu'en passant en niveau 2 ou 3
    (pour par exemple redémarrer xdm ou pour recycler X)

    En niveau 2 ou 3 c'est mieux (tm).
    suivant le mode ou les interfaces réseau sont activées:
    par défaut: 2 sous debian, 3 sous rh/mdk||mandriva
  • # Utiliser le iptables mdk.

    Posté par  . Évalué à 3.

    Si dans ton script il n'y a que des regles iptables, tu peux faire la chose suivante :
    #./parefeu
    #service iptables save

    Normalement cela créé un fichier /etc/sysconfig/iptables qui contient les regles à appliquer au démarrage. Voir /etc/init.d/iptables pour plus d'infos sur le fonctionnement du truc.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.