#1 Le 19/12/2017, à 08: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, à 07:22)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 09: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, à 11: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 le problème solutionné, 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, à 14: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, à 16:33)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 16:35
- serged
Re : [Résolu]info de lancement automatique
@ 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, à 17: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, à 19:24)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 20: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, à 20: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 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 07: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 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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, à 07: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, à 09:06)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( 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