Forum Linux.général Lancer une application par script shell

Posté par . Licence CC by-sa
Tags : aucun
2
6
mai
2016

Bonjour à tous,

J'ai cherché comment lancer automatiquement un script shell sous Fedora (v.23).

Jusqu'ici, j'ai trouvé le chemin d'accès ou mettre le .sh, très bien.

Je souhaite lancer une application (fancontrol, /etc/fancontrol) pour réguler la température de mon PC à l'aide du ventilateur.

Je dois lancer cette application en sudo mais jusqu'ici voici ce que j'ai mis dans le .sh :

sudo fancontrol    

Merci d'avance

  • # Automatiquement ?

    Posté par . Évalué à 2.

    Qu'est-ce que tu entends par automatiquement ?
    À chaque fois que tu allumes ta machine ?
    À chaque fois que tu te connectes ?

    Tu dois ajouter le shebang au début de ton script:

    #! /bin/sh
    sudo fancontrol

    Ensuite, afin de rendre le script exécutable: chmod +x mon_script.sh

    • [^] # Re: Automatiquement ?

      Posté par . Évalué à 1. Dernière modification le 06/05/16 à 17:55.

      J'entends à chaque fois que je démarre mon PC.

      Je vais retenter mais, …

      C'est une appli à lancer en sudo aussi.

      pc-bureau-jo n'apparaît pas dans le fichier sudoers. Cet événement sera signalé.

      • [^] # Re: Automatiquement ?

        Posté par . Évalué à 2.

        Il faut ajouter une ligne dans ton fichier rc.local (c'est un script qui est lancé au démarrage). Je ne connais pas Fedora, mais il me semble que c'est /etc/rc.d/rc.local (à vérifier)
        Il sera lancé en tant que root, donc pas besoin de "sudo".

        Et si jamais ça ne marche pas, essaie d'activer le service rc-local avec systemd.

        • [^] # Re: Automatiquement ?

          Posté par . Évalué à 0. Dernière modification le 10/05/16 à 12:16.

          Merci pour ta réponse.

          Je donne la démarche que j'ai trouvé :

          1-Créer un script de lancement automatique au démarrage :

          gedit /etc/init.d/fancontrol

          Ajouter :

              #!/bin/sh
              #
              # Fancontrol start script.
              #
              # chkconfig: 2345 98 10 //IMPORTANT POUR LA PRISE EN COMPTE PAR CHKCONFIG ET LA GESTION DU SERVICE FANCONTROL AU DEMARRAGE
              #
              # Source function library.
              . /etc/init.d/functions
          
              DAEMON=/usr/sbin/fancontrol
              PATH=/sbin:/bin:/usr/sbin:/usr/bin
              prog=Fancontrol
          
              start () {
                  echo -n $"Starting $prog: "
          
                  # start daemon
                  daemon $DAEMON
                  RETVAL=$?
                  echo
                  [ $RETVAL = 0 ] && touch /var/lock/subsys/fancontrol
                  return $RETVAL
              }
          
              stop () {
                  # stop daemon
                  echo -n $"Stopping $prog: "
                  killproc $DAEMON
                  RETVAL=$?
                  echo
                  [ $RETVAL = 0 ] && rm -f /var/lock/subsys/fancontrol
              }
          
              restart() {
                  stop
                  start
              }
          
              case $1 in
                  start)
                      start
                  ;;
                  stop)
                      stop
                  ;;
                  restart)
                      restart
                  ;;
                  condrestart)
                      [ -f /var/lock/subsys/fancontrol ] && restart || :
                  ;;    
                  reload)
                      echo -n $"Reloading $prog: "
                      killproc $DAEMON -HUP
                      RETVAL=$?
                      echo
                  ;;
                  status)
                      status $DAEMON
                      RETVAL=$?
                  ;;
                  restartlog)
                      stop
                      cat /dev/null >/var/log/fancontrol/error_log
                      start
                  ;;
                  *)
          
                  echo $"Usage: $prog {start|stop|restart|condrestart|reload|status}"
                  exit 3
              esac
          
              exit $RETVAL

          2-Ajouter le service au démarrage :

          # systemctl enable fancontrol
          Synchronizing state of fancontrol.service with SysV init with /usr/lib/systemd/systemd-sysv-install...
          Executing /usr/lib/systemd/systemd-sysv-install enable fancontrol

          3-Vérifier que le service soit bien lancer au démarrage

          # system-config-services

Suivre le flux des commentaires

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