Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pourquoi mon 1er script y marche pôôô ???!

4 réponses
Avatar
Ollinux
Bonjour à tous

Alors voilà :
Je suis connecté au net par le speedtouch d'Alcatel...
Tout fonctionne merveilleusement bien, sauf que je suis obligé d'entrer
à la mimine dans une console loggé sous root les fameuses lignes de
commandes (blabla) modem_run avec appel du fichier mgmt.o, puis lorsque
c'est fini, je lance la connexion par "pppd call adsl"...

Donc tout cela fonctionne super bien...
Etant donné que je me logge avec un user qui n'est pas "root",
evidemment, et que devoir refaire tout cela commence à m'ennuyer, j'ai
voulu faire un petit script, qui si trouverait sur le bureau de mon user
"de base", et je voulais simplement qu'en double-cliquant dessus,
l'initialisation du modem et le lancement de la connexion se fassent.

J'ai donc suivi les conseils du net pour rédiger ce petit machin, que je
vous livre ci dessous :

#!/bin/bash

# Script de connection Internet
# Initialisation du modem suivi d'une pause
# Puis appel de la connection

/usr/local/sbin/modem_run -f /usr/share/speedtouch/mgmt.o
sleep 30
pppd call adsl


J'etais deja super content de moi.... J'ai mon fichier sur le bureau de
kde...
Voulant le rendre executable, j'ouvre une console en tant que root, puis
, en etant sur le bureau de mon user "de base", je tape :
chmod +x connection (connection = le nom de mon fichier)

Un sale reflexe herité de windows : je redémarre l'ordi, arrive sur le
bureau de mon user "de base" et je double-clique sur mon fichier
connection...

Puis j'attends...
Et j'attends
Et puis là : Kdesktop me dit : impossible de trouver le programme
connection...

Je suis tellement deçu !!! Bouh !! lol
Quand je pense que je voulais ensuite rendre ce script "transparent"
c'est à dire faire en sorte qu'il se lance tout seul au démarrage... Et
j'peux même pas le lancer à la main...

Donc si quelqu'un peut me dire quoi faire pour :
que je puisse lancer ce script sous mon user "de base" en double
cliquant dessus depuis le bureau ?
Et lorsque cela fonctionnera, que faire de ce fichier pour qu'il se
lance au démarrage de l'ordi ?

Merci d'avance, et désolé pour le roman... Je voulais être clair :-)

Olivier

4 réponses

Avatar
Alex Marandon
In article <bit627$s3q$, Ollinux wrote:
Donc tout cela fonctionne super bien...
Etant donné que je me logge avec un user qui n'est pas "root",
evidemment, et que devoir refaire tout cela commence à m'ennuyer, j'ai
voulu faire un petit script, qui si trouverait sur le bureau de mon user
"de base", et je voulais simplement qu'en double-cliquant dessus,
l'initialisation du modem et le lancement de la connexion se fassent.

J'ai donc suivi les conseils du net pour rédiger ce petit machin, que je
vous livre ci dessous :

#!/bin/bash

# Script de connection Internet
# Initialisation du modem suivi d'une pause
# Puis appel de la connection

/usr/local/sbin/modem_run -f /usr/share/speedtouch/mgmt.o
sleep 30
pppd call adsl


Commence par éxecuter le script depuis un shell, ça te permettra de voir
les éventuels messages d'erreur. Notament je crois bien que ces
commandes doivent être executées par root.

Je suis tellement deçu !!! Bouh !! lol
Quand je pense que je voulais ensuite rendre ce script "transparent"
c'est à dire faire en sorte qu'il se lance tout seul au démarrage... Et
j'peux même pas le lancer à la main...


Pour qu'elles soient exécutées au démarrage, tu peux mettre tes
commandes dans le fichier /etc/rc.local

Avatar
Ollinux
Alex Marandon wrote:
In article <bit627$s3q$, Ollinux wrote:

Commence par éxecuter le script depuis un shell, ça te permettra de voir
les éventuels messages d'erreur. Notament je crois bien que ces
commandes doivent être executées par root.


Et bien au risque de passer pour un gros naze (mais j'assume) j'avoue ne
pas savoir comment executer un script dans un shell...

Je vais même m'enfoncer en avouant que je viens seulement de renommer
mon script "connection" en "connection.sh" (j'ai vu ça sur le net, je
m'etais même pas posé la question de savoir s'il y avait une extension à
donner...

Mais de toute façon, la punition est la même : il ne trouve pas le
programme "connection.sh"
Dans un term, que ce soit sous root, ou sous le user, il ne connait pas
la commande "connection"... Je sais plus quoi faire !! :-)


Pour qu'elles soient exécutées au démarrage, tu peux mettre tes
commandes dans le fichier /etc/rc.local


Merci, j'essaierai dès que le script fonctionnera :-)

Avatar
Didier

Mais de toute façon, la punition est la même : il ne trouve pas le
programme "connection.sh"
Dans un term, que ce soit sous root, ou sous le user, il ne connait pas
la commande "connection"... Je sais plus quoi faire !! :-)


Pour qu'elles soient exécutées au démarrage, tu peux mettre tes
commandes dans le fichier /etc/rc.local




lancer un xterm
se logger en root : $ su root
il demande un mot de passe : password : _ton_mot_de_passe_root_
puis aller dans le repertoire où tu a créé le fichier "connection.sh" :
cd /le/bon/repertoire
puis là executer ton script par ./connection.sh

un script se lance par ./monscript (point slash)


Avatar
Alex Marandon
In article <bitcoj$ne$, Ollinux wrote:
Je vais même m'enfoncer en avouant que je viens seulement de renommer
mon script "connection" en "connection.sh" (j'ai vu ça sur le net, je
m'etais même pas posé la question de savoir s'il y avait une extension à
donner...


En l'occurence, l'extension n'a aucune importance pour le système. En
revanche ça peut être commode pour toi de la mettre pour repérer
facilement qu'il s'agit d'un script shell.

Mais de toute façon, la punition est la même : il ne trouve pas le
programme "connection.sh"
Dans un term, que ce soit sous root, ou sous le user, il ne connait pas
la commande "connection"... Je sais plus quoi faire !! :-)


Pour trouver les commande il a besoin de savoir dans quel répertoire
aller les chercher. Pour cela il inspecte la variable d'environement
PATH qui contient une suite de répertoire. Si ton script ne se trouve
pas dans un de ces répertoires, il ne le trouveras pas. Tu peux donc
modifier le PATH ou bien indiquer le chemin absolu ou relatif du script
à exécuter. Exemple :

$ cd /le/rep/qui/contient/le/script
$ ./connection

(Ne pas taper le signe dollar, il représente le prompt du shell)

Je te conseille de passer quelques heures à lire de la documentation
destinée aux débutants (le web en est plein), et tout ceci devrait devenir
clair.