Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/12/2017, à 09:57

ar barzh paour

[Résolu]info de lancement automatique

Résolution : utilisation de la commande tty et utilisation de $1 voir posts suivants
bonjour à tous

j'ai un shell qui me conserve des informations dans un fichier qui est archivé

ce shell est lancé au démarrage (autostart)

mais peut aussi être relancé  (il recrée un autre fichier archive)

la question :
je voudrais que dans le fichier qui est archivé avoir une information qui me dise si ce shell a été lancé automatiquement ( autostart ) ou s'il a été lancé "à la main"
par exemple :
info de lancement  : shell lancé par autostart
info de lancement  : shell non lancé ar autostart
info de lancement : shell lancé par cron

une idée comment faire ?

Dernière modification par ar barzh paour (Le 20/12/2017, à 08:22)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#2 Le 19/12/2017, à 10:17

Hizoka

Re : [Résolu]info de lancement automatique

Salut, la commande devrait pouvoir t'aider :

tty
/dev/pts/1

Dans le cas où il a été lancé via cron, il dit un truc du genre : pas de tty
en  anglais ça dit : not a tty


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 19/12/2017, à 12:47

erresse

Re : [Résolu]info de lancement automatique

Bonjour,
Mets un paramètre dans ton script :
$1="auto" --> autostart
$1="manu" --> manuel
$1="cron" --> plannifié


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#4 Le 19/12/2017, à 15:13

ar barzh paour

Re : [Résolu]info de lancement automatique

@ Hizoka : il faudra que je vois comment le système régit en cron
mais effectivement
avec autostart j'ai "pas un tty"
avec double-clic j'ai "/dev/pts/1"
après essai par cron j'obtiens aussi "pas un tty"

@ eresse bonne idée mais je ne vois pas comment je différencie avec $1 le fait que l'autostart s'exécute et le fait que je clic sur le fichier pour l'exécuter

Dernière modification par ar barzh paour (Le 19/12/2017, à 17:33)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#5 Le 19/12/2017, à 17:35

serged

Re : [Résolu]info de lancement automatique

ar barzh paour a écrit :

@ eresse bonne idée mais je ne vois pas comment je différencie avec $1 le fait que l'autostart s'exécute et le fait que je clic sur le fichier pour l'exécuter

Très simple :
- Dans l'autostart, tu mets la ligne :

monscript auto

Dans le cron, tu mets la commande :

monscript cron

(le paramètre manu est facultatif)
et dans le script tu mets :

#...case "$1" in
auto) # ce qu'il faut faire en mode autostart
 ;;
cron) #ce qu'il faut faire en mode cron
;;
*) # Lancement manuel
;;
esac

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#6 Le 19/12/2017, à 18:43

ar barzh paour

Re : [Résolu]info de lancement automatique

ma commande que j'ai simplifiée à l'extrême

#!/bin/bash
param1="$1"
echo "$param1" >/tmp/tmp-tty.txt
tty >> /tmp/tmp-tty.txt # en autostart on a "pas un tty"
                       # en cron ?
                       # en double-clic on obtient /dev/pts/1
origine=$(tty)
[[ -z $param1 ]] && param1="vide"
zenity --error --text "param1 : $param1 / origine : $origine" # mais si on n'a pas de tty , il n'y aura pas de message !
exit 0

dans le .desktop de autostart j'ai mis Exec=ma_commande "auto"
j'obtiens bien de cette façon "auto" et "pas un tty"

par double clic j'obtiens /dev/pts/x et "vide"

par cron je n'arrive pas à lancer mon shell
j'ai essayé les lignes suivantes

pour le lancer au reboot
@reboot /media/SH/ma_commande "R"

pour le lancer toutes les 2 minutes
*/2 * * * * /media/SH/ma_commande "R"

pour le lancer à 17h05
5 17 * * * /media/SH/ma_commande "cron"
aucune n'a fonctionnée ( et le fichier /tmp/tmp-tty.txt ne se crée pas /ou  ne se modifie pas)

j'ai trouvé la parade mais ça m'embête beaucoup
effectivement ma_commande se trouve sur une partition montée par fstab
j'ai copié ma_commande dans mon répertoire $USER et là ça fonctionne !!!!
cron n'arrive pas à lancer ma_commande quand elle est sur une autre partition
et ça me rappelle un problème du même type que j'avais eu au passage de 12.04 en 14.04

Dernière modification par ar barzh paour (Le 19/12/2017, à 20:24)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#7 Le 19/12/2017, à 21:32

Hizoka

Re : [Résolu]info de lancement automatique

même en lui indiquant l'adresse complète de la commande ?
Normalement ça devrait pas le perturber plus que ça hormis peut être au démarrage si la partition est montée après le lancement de cron...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#8 Le 19/12/2017, à 21:43

ar barzh paour

Re : [Résolu]info de lancement automatique

non j'ai bien utilisé le chemin complet

jpb@jpb-AMILO-Li-2735:/media/SH$ ls -ails af*
262 24 -rwxr-xr-x 1 jpb jpb 21448 déc.  19 19:02 afficheconfigjpb16_04
jpb@jpb-AMILO-Li-2735:/media/SH$

un extrait de crontab

# m h  dom mon dow   command
# */2 * * * * /media/SH/afficheconfigjpb16-04
# 5 17 * * * /media/SH/afficheconfigjpb16-04 "cron"
@reboot  /media/SH/afficheconfigjpb16-04 "R"
@reboot /home/jpb/exo/efface "EFFACE"

dans ces différents essais seul le dernier ( qui se trouve dans $USER) fonctionne
(en plus j'ai diésé les deux premiers qui ne fonctionnaient pas)
"efface" est en fait une copie du fichier afficheconfigjpb16-04


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#9 Le 20/12/2017, à 08:20

ar barzh paour

Re : [Résolu]info de lancement automatique

j'ai pensé à un problème de droit
j'ai donc initialisé un cron en root

jpb@jpb-AMILO-Li-2735:~$ sudo crontab -l
# m h  dom mon dow   command
@reboot /media/SH/afficheconfigjpb16-04 "CRON-root-affiche"

mais ça ne fonctionne toujours pas
la première ligne de ce shell est

echo $(date)   >> /home/jpb/exo/tty-affiche.txt

et je n'ai aucune trace de création/modification de ce fichier !!!
donc je sèche sur ce problème de cron
je vais considérer ma question initiale comme résolue
(la combinaison tty et $1 résout la question merci @ Hizoka eresse et serged)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#10 Le 20/12/2017, à 08:31

ar barzh paour

Re : [Résolu]info de lancement automatique

le .desktop de autostart contient
EXEC=ma-commande "AUTOSTART"

dans le cron je mets
ma-commande "CRON"


dans ma-commande on analyse $1 et le résultat de la commande tty
1-si tty renvoie "pas un tty" ,
             c'est cron ou autostart
             si $1 =CRON  ..... c'est cron
             si $1= AUTOSTART .... c'est autostart
2 si tty envoie rien
             si $1=AUTOSTART , c'est que le shell a été lancé en cliquant sur le .desktop
             si $1 est vide , c'est que le shell a été lancé en cliquant directement sur le shell
EDIT en fiat
en autostart (.desktop)
tty renvoie "pas un tty" si TERM=FALSE
tty renvoie "/dev/pts/n" si TERM=TRUE
il faut légèrement modifier l'analyse
si on a $1=CRON c'est CRON
si on a $1="" , le shell a été lancé en cliquant directement sur le shell
si on a $1="AUTOSTART" ,  soit c'est autostart soit c'est clic sur .desktop

Dernière modification par ar barzh paour (Le 20/12/2017, à 10:06)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne