Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 27/03/2014, à 19:22

mortimer.pw

Exécution shell au démarrage

Bonjour à tous,
Nouveau sur Ubuntu (13.10).
J'ai réglé (avec votre aide) un problème de défilement au touchpad, mais la modification n'est pas persistante.
J'ai donc créé un shell dans /etc/init.d : -rwxr-xr-x 1 root root 112 mars  27 18:13 /etc/init.d/monscript.sh
#! /bin/sh
synclient vertedgescroll=1
synclient vertscrolldelta=100
echo "ok" > /home/mortimer/test.txt
exit 0
Lorsque je redémarre mon P.C, le fichier test.txt (avec le ok) est bien présent. Ce qui semble indiqué que le script s'est bien exécuté.
Mais les deux commandes pour le touchpad n'ont pas d'effet.
Après lancement manuel du shell, le touchpad est bien modifié.
Quel peut être l'origine du problème ?
Merci d'avance pour votre aide.

Hors ligne

#2 Le 27/03/2014, à 19:24

Kooothor

Re : Exécution shell au démarrage

Alors déjà tu confonds les mots "shell" et "script".

Ensuite, remplace "synclient" par le retour de la commande :

which synclient

C'est-à-dire que tu lui donnes le chemin complet de l'application afin qu'il puisse la trouver.


Utilisateur d'Archlinux | Cruncheur BOINC | Bépoiste
Admin de Flood.fr | Mon ~ | Mes dotfiles
«Your behavior is not funny and is wasting the time of the federal government !»

Hors ligne

#3 Le 27/03/2014, à 19:39

mortimer.pw

Re : Exécution shell au démarrage

Bonjour Kooothor,
Merci pour ton aide.
Pour ma culture, quelle est la différence entre un shell et un script ?
J'ai donc changé les 2 lignes :
/usr/bin/synclient vertedgescroll=1
/usr/bin/synclient vertscrolldelta=100
Mais cela ne change rien.

Hors ligne

#4 Le 27/03/2014, à 19:44

Kooothor

Re : Exécution shell au démarrage

Le shell c'est l'interpréteur de commandes : https://fr.wikipedia.org/wiki/Shell_%28informatique%29
sh, bash, ou mieux : zsh.
Le script c'est le fichier qui contient des commandes.

Et pour ton problème, je n'ai pas plus d'idées.


Utilisateur d'Archlinux | Cruncheur BOINC | Bépoiste
Admin de Flood.fr | Mon ~ | Mes dotfiles
«Your behavior is not funny and is wasting the time of the federal government !»

Hors ligne

#5 Le 27/03/2014, à 19:46

mortimer.pw

Re : Exécution shell au démarrage

Ok, merci Kooothor.

Pour infos, j'ai :
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc0.d/K02monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc1.d/K02monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc2.d/S98monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc3.d/S98monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc4.d/S98monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc5.d/S98monscript.sh -> ../init.d/monscript.sh
lrwxrwxrwx 1 root root 22 mars  26 21:13 /etc/rc6.d/K02monscript.sh -> ../init.d/monscript.sh

Hors ligne

#6 Le 27/03/2014, à 19:47

Kooothor

Re : Exécution shell au démarrage

Ah si je viens de penser, remplace

echo "ok" > /home/mortimer/test.txt

par

echo "ok @ "$(date) >> /home/mortimer/test.txt

J'imagine que tu as testé ton script à la main avant de reboot. Il a donc créé le fichier avec marqué 'ok'. Mais si tu ne supprimes pas le fichier, comment savoir si le 'ok' provient du test à la main, ou de l'exécution au boot ?


Utilisateur d'Archlinux | Cruncheur BOINC | Bépoiste
Admin de Flood.fr | Mon ~ | Mes dotfiles
«Your behavior is not funny and is wasting the time of the federal government !»

Hors ligne

#7 Le 27/03/2014, à 19:50

mortimer.pw

Re : Exécution shell au démarrage

Bien pensé, j'ai eu la même réflexion et j'ai remplacé le > par >>
C'est un peu la même chose, mais je vais tout de même mettre la date.

Hors ligne

#8 Le 28/03/2014, à 10:00

serged

Re : Exécution shell au démarrage

mortimer.pw a écrit :

Bien pensé, j'ai eu la même réflexion et j'ai remplacé le > par >>
C'est un peu la même chose, mais je vais tout de même mettre la date.

Tu peux toujours avoir la date par la date du fichier :

ls -l /home/mortimer/test.txt

Sinon, comme le dit Kooothor, le problème est sûrement dans le chemin de l'utilitaire. Remplace synclient par /usr/bin/synclient dans ton script. En effet, $PATH n'est pas toujours défini dans init.


Linux-Mint Qiana 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#9 Le 28/03/2014, à 11:28

Josepe36

Re : Exécution shell au démarrage

Bonjour

Je ne pense pas que ce soit une bonne chose que de placer ce script dans /etc/init.d, si ça ne fonctionne pas c est probablement parce que le serveur X n'est pas encore lançé
lors de l'execution de votre script.
A mon sens il serait préférable de le placer dans /usr/local/bin, et de l'appeler a l ouverture de votre session  à partir du fichier .profile.


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#10 Le 28/03/2014, à 11:48

Sciensous

Re : Exécution shell au démarrage

Josepe36 a écrit :

Bonjour

Je ne pense pas que ce soit une bonne chose que de placer ce script dans /etc/init.d, si ça ne fonctionne pas c est probablement parce que le serveur X n'est pas encore lançé
lors de l'execution de votre script.
A mon sens il serait préférable de le placer dans /usr/local/bin, et de l'appeler a l ouverture de votre session  à partir du fichier .profile.

pour la chrono avec le serveur X, je suis d'accord; mais alors il vaut mieux rajouter les instructions dans /etc/rc.local
à confirmer par des spécialistes...

Dernière modification par Sciensous (Le 28/03/2014, à 11:48)

Hors ligne

#11 Le 28/03/2014, à 12:05

Josepe36

Re : Exécution shell au démarrage

pour la chrono avec le serveur X, je suis d'accord; mais alors il vaut mieux rajouter les instructions dans /etc/rc.local
à confirmer par des spécialistes...

rc.local ou .profile ?
ce n'est pas un choix de specialiste, mais plutot un choix d administration du systeme.
Dans les deux cas c est une solution, rc.local s'appliquera donc a toute les sessions et .profile uniquement a sa session, une histoire de choix.

Et une question, qu'entends tu par des spécialistes ?

Dernière modification par Josepe36 (Le 28/03/2014, à 12:06)


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#12 Le 28/03/2014, à 12:13

Sciensous

Re : Exécution shell au démarrage

spécialistes: toi wink
car à moins de faire des recherches, je ne connais pas la nuance entre rc.local et .profile
merci pour cette précision smile

Hors ligne

#13 Le 28/03/2014, à 18:16

mortimer.pw

Re : Exécution shell au démarrage

Bonjour à tous,
J'avais ajouter le chemin complet de synclient dans mon script, mais ça ne change rien.
Je viens de mettre les 2 lignes dans le fichier /etc/rc.local, pas mieux.

Dernière modification par mortimer.pw (Le 28/03/2014, à 18:18)

Hors ligne

#14 Le 28/03/2014, à 18:36

serged

Re : Exécution shell au démarrage

AMHA :
Ton script doit être lancé au démarrage de la session graphique. Il faut donc le faire lancer non par /etc/init* ni par .profile (qui est lancé au démarrage d'un terminal).
Il faut le lancer soit dans les "Applications au démarrage", soit dans /etc/X11/Xsession.d.


Linux-Mint Qiana 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#15 Le 28/03/2014, à 18:40

mortimer.pw

Re : Exécution shell au démarrage

je dois juste mettre le script dans le répertoire ?

Hors ligne

#16 Le 28/03/2014, à 19:47

Sciensous

Re : Exécution shell au démarrage

oui, en vérifiant qu'il a bien l'option executable (+x)

Hors ligne

#17 Le 28/03/2014, à 19:55

Josepe36

Re : Exécution shell au démarrage

.profile (qui est lancé au démarrage d'un terminal).

FAUX
C'est .bashrc qui est lançé au démarage d'un terminal.


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#18 Le 28/03/2014, à 20:13

Kooothor

Re : Exécution shell au démarrage

Josepe36 a écrit :
.profile (qui est lancé au démarrage d'un terminal).

FAUX
C'est .bashrc qui est lançé au démarage d'un terminal.

euh en fait c'est .profile et .bashrc qui sont lus SI tu utilises bash.


Utilisateur d'Archlinux | Cruncheur BOINC | Bépoiste
Admin de Flood.fr | Mon ~ | Mes dotfiles
«Your behavior is not funny and is wasting the time of the federal government !»

Hors ligne

#19 Le 28/03/2014, à 21:19

Josepe36

Re : Exécution shell au démarrage

conrétement, il est aisé de faire le test sur ces deux fichiers afin de voir le comportement.
.bashrc va préparer le shell lors de l ouverture d un terminal, alias, etc...
si j ecris a la fin de .bashrc:
echo "salut" $USER
A l ouverture d un terminal celui ci vous dira salut.

Si je fais la meme chose dans .profile  et que j ouvre un terminal rien ne se passe.

@mortimer.pw
tu peux meme tout simplement mettre ton script dans ton home, le rendre executable et ecrire dans .profile:
$HOME/ton_script.sh &


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#20 Le 29/03/2014, à 10:08

serged

Re : Exécution shell au démarrage

Josepe36 a écrit :
.profile (qui est lancé au démarrage d'un terminal).

FAUX
C'est .bashrc qui est lançé au démarage d'un terminal.

Si, si.
.profile est lancé par tout les shells de type bourne-shell (bash, dash, zsh... mais pas tcsh), .bashrc n'est lancé que par bash (et .zshrc par zsh...).


Linux-Mint Qiana 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#21 Le 29/03/2014, à 11:35

Josepe36

Re : Exécution shell au démarrage

on parle bien de $HOME/.profile et non de /etc/profile serged ?


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#22 Le 29/03/2014, à 18:15

serged

Re : Exécution shell au démarrage

Josepe36 a écrit :

on parle bien de $HOME/.profile et non de /etc/profile serged ?

$HOME/.profile est exécuté au démarrage d'un terminal de l'utilisateur. /etc/profile est exécuté au démarrage d'un terminal de tous les utilisateurs.

(idem pour $HOME/.bashrc et /etc/bash.bashrc)


Linux-Mint Qiana 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#23 Le 29/03/2014, à 19:12

Josepe36

Re : Exécution shell au démarrage

ha daccords $serged mais tu as testé ?
parceque à priori ça marche pas comme ça sur ma 13.10...
As tu essayé la manip que j ai fais en post19 ?


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#24 Le 29/03/2014, à 19:40

Josepe36

Re : Exécution shell au démarrage


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#25 Le 30/03/2014, à 10:34

mortimer.pw

Re : Exécution shell au démarrage

Bonjour à tous,

RIEN NE MARCHE !

J'ai essayé de mettre mon script dans /etc/X11/Xsession.d, ça ne marche pas
J'ai essayé de le mettre dans /home et de l'appeler dans .profile, ça ne marche pas

Si dessous les lignes de mon script :
#!/bin/sh
/usr/bin/synclient vertedgescroll=1
/usr/bin/synclient vertscrolldelta=100
exit 0

Les droits sur le fichier :
-rwxr-xr-x  1 mortimer mortimer   92 mars  28 17:41 monscript.sh

Est-ce que j'ai raté quelque chose ?

Hors ligne

Haut de page ↑