Pages : 1
#1 Le 31/07/2017, à 22:13
- Nuliel
application au démarrage
Bonjour,
J'aimerais lancer cette commande (le but étant de compléter la doc):
setxkbmap -option terminate:ctrl_alt_bksp
au démarrage, juste après s'être logué (je sais pas si c'est obligatoire), et en ligne de commande. C'est une commande qui ne renvoie rien et se termine aussitôt.
Il faut que cette commande s'applique à l'utilisateur, et pas à root.
J'ai testé
-rc.local, j'ai pas réussi à le faire fonctionner, même pour créer un stupide fichier
-cron, pour créer un fichier ça marche mais pour cette commande non (j'ai testé @reboot setxkbmap -option terminate:ctrl_alt_bksp, je comprends pas pourquoi ça marche pas, si quelqu'un peut m'expliquer)
J'ai pas testé systemd parce que je ne comprends pas grand chose à la création de scripts systemd. Si je dois utiliser systemd, c'est un script de type oneshot qu'il faut faire dans mon cas?
Si quelqu'un peut m'aiguiller vers la solution, ça serait cool
Hors ligne
#2 Le 31/07/2017, à 22:51
- DonutMan75
Re : application au démarrage
Hello, la syntaxe ne me choque pas,
peut-être tenter la commande suivante pour voir si une erreur est générée ?
@reboot setxkbmap -option terminate:ctrl_alt_bksp 2>/chemin/vers/fichier_de_log.log
Ou alors encapsuler la commande dans un script sh ?
@reboot /chemin/de/mon_script.sh
mon_script.sh :
#! /bin/sh
setxkbmap -option terminate:ctrl_alt_bksp
Bonne soirée
Donut
Hors ligne
#3 Le 31/07/2017, à 23:04
- Watael
Re : application au démarrage
salut,
setxkbmap étant une application X, elle va avoir du mal à être exécutée par cron (surtout au démarrage, alors que X n'est encore lancé).
il est préférable de configurer le Window Manager (lequel ?) pour qu'il l'exécute au moment de son démarrage.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#4 Le 01/08/2017, à 08:18
- Hizoka
Re : application au démarrage
sinon dans ce cas là, je fais :
@reboot sleep 30 && setxkbmap -option terminate:ctrl_alt_bksp 2>/chemin/vers/fichier_de_log.log
ça laisse le temps à x de se lancer.
mais sinon comme le dit Watael, via le Window Manager.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#5 Le 01/08/2017, à 12:58
- Nuliel
Re : application au démarrage
Merci pour vos réponses.
Effectivement, cron démarre avant le serveur X ce qui produisait une erreur du style 'cannot find default display'.
@reboot sleep 30 && setxkbmap -option terminate:ctrl_alt_bksp 2>/chemin/vers/fichier_de_log.log
fonctionne donc très bien.
Au passage, je viens de remarquer que je confonds deux touches du clavier, donc on peut mettre l'option dans /etc/default/keyboard, ça fonctionne aussi (je pensais que le fichier n'était plus pris en compte, c'est pourquoi j'ai ouvert ce fil)
Par curiosité, y a t'il une méthode en ligne de commande pour exécuter un programme après le chargement du Window Manager (je suis sur xubuntu 16.04)?
Hors ligne
#6 Le 03/08/2017, à 14:38
- Harashi
Re : application au démarrage
Bonjour,
Alors je débarque peut-être complètement, mais il me semble que la méthode décrite ici pour lancer iptables au démarrage est la plus simple. Il te suffit de créer un script bash avec ta commande (appelons-le ton_script), puis de faire ça :
sudo mv /emplacement/du/script /etc/init.d
sudo chmod +x /etc/init.d/ton_script
sudo update-rc.d ton_script defaults
Après quoi il se lancera à chaque démarrage. Ça me parait être la méthode de base, du coup désolé si je n'ai pas bien compris ce que tu essayes de faire mais si jamais ça peut aider.
Asus RoG GL552JX-DM322T : Triple amorçage Windows 10 / Ubuntu 18.04 LTS / Archlinux
Dell-Latitude D430 : Debian Stretch
Hors ligne
#7 Le 03/08/2017, à 15:59
- Hizoka
Re : application au démarrage
avec ta methode, c'est executé en root non ?
ce qui n'est pas forcement une bonne idée en fonction du logiciel.
de plus, ta méthode fonctionne pour les logiciels graphiques ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 03/08/2017, à 16:07
- Harashi
Re : application au démarrage
C'est plus que probablement exécuté en root car je me sers de ça pour un script iptables. Après je ne cherchais ici qu'à répondre par rapport à la commande que voulait lancer ublender.
Je n'ai jamais testé pour les logiciels graphiques, mais comme c'est l'équivalent d'une ligne de commande normale tu dois pouvoir le faire aussi avec la commande adéquate. Par exemple pour lancer le terminal de XFCE, tu dois marquer xfce4-terminal. A tester avec un programme sans conséquence au préalable, cependant.
Asus RoG GL552JX-DM322T : Triple amorçage Windows 10 / Ubuntu 18.04 LTS / Archlinux
Dell-Latitude D430 : Debian Stretch
Hors ligne
#9 Le 03/08/2017, à 16:50
- Hizoka
Re : application au démarrage
à mon avis les commandes sont exécutées avant le lancement de X, d'où ma question.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 04/08/2017, à 20:57
- Nuliel
Re : application au démarrage
@Harashi: J'ai testé ce que tu proposes mais ça n'a pas fonctionné, même pour créer un fichier. En tout cas merci d'avoir proposé une solution.
Hors ligne
#11 Le 05/08/2017, à 11:46
- Harashi
Re : application au démarrage
@ublender : Oui, ça n'a pas dû fonctionner car je me rend compte que j'ai oublié de préciser un truc important (désolé ^^'), il faut mettre ceci au début de ton script :
#!/bin/bash
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
## Ajout: LSB tags and overrides
Ensuite tu sautes une ligne et tu ajoutes ta commande.
@Hizoka : Bonne question, je vais tester avec firefox dès que j'ai deux minutes
Asus RoG GL552JX-DM322T : Triple amorçage Windows 10 / Ubuntu 18.04 LTS / Archlinux
Dell-Latitude D430 : Debian Stretch
Hors ligne
#12 Le 06/08/2017, à 16:04
- LeoMajor
Re : application au démarrage
salut,
sous systemd, tu es obligé de faire un test sur
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(awk -F: '{print $3}'< <(getent passwd $(whoami)))/bus"
l'export DISPLAY est facultatif
#!/bin/bash
### BEGIN INIT INFO
# Provides: skeleton
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
## Ajout: LSB tags and overrides
à mon avis, c'est carrément obsolète, surtout avec systemd
soit tu utilises un script au démarrage de session (gnome-session-properties) ; le plus simple
soit tu utilises un service systemd type inotify incron iwatch, qui surveille l'existence de DBUS_SESSION_BUS_ADDRESS, et qui déclenche le script contenant ton code.
le cron n'est pas du tout adapté.
Hors ligne
#13 Le 06/08/2017, à 17:25
- Harashi
Re : application au démarrage
à mon avis, c'est carrément obsolète, surtout avec systemd
Probablement, je l'avais pris sur une vieille page de documentation il y a un an, mais en attendant chez moi c'est la seule façon de le faire fonctionner, si je ne le met pas il ne se déclenche pas. Après il y a peut-être un truc que je ne maîtrise pas là-dedans.
Asus RoG GL552JX-DM322T : Triple amorçage Windows 10 / Ubuntu 18.04 LTS / Archlinux
Dell-Latitude D430 : Debian Stretch
Hors ligne
#14 Le 06/08/2017, à 19:00
- Sub0
Re : application au démarrage
Je sais pas si c’est pertinent mais : un service systemd de Type=OneShot WantedBy=multi-user.target avec un truc du genre ExecStart=ta_commande ?
J’ai pas de buntu installé avec un serveur graphique sous la main, donc j’peux pas regarder en détail, mais c’est quel service qui lance le gestionnaire de login ou le DE ?
Edit : pas convaincu par le multi-user.target…
Mais je crois que c’est une piste.
graphical.target ?
Faut regarder la séquence de boot.
Dernière modification par Sub0 (Le 06/08/2017, à 19:02)
Seule alternative au bépo acceptée = stylo/papier.
Hors ligne
#15 Le 08/08/2017, à 10:06
- Nuliel
Re : application au démarrage
@LeoMajor: je comprends pas ce qu'est DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(awk -F: '{print $3}'< <(getent passwd $(whoami)))/bus" et ce qu'il faut en faire.
J'ai essayé de faire un service systemd, j'ai mis ça:
[Unit]
Description=test
After=lightdm.service
[Service]
Type=simple
User=user
Group=user
ExecStart=/usr/bin/touch /home/user/test.txt
Ensuite j'ai fait:
sudo systemctl enable test.service
pour qu'il s’exécute à chaque démarrage, mais il ne se passe rien. Quand je fais:
sudo systemctl start test.service
ça fonctionne, donc le service est bon.
Et j'ai créé le service dans /etc/systemd/system, je sais pas si c'est le bon endroit pour faire ça
Dernière modification par Nuliel (Le 08/08/2017, à 10:15)
Hors ligne
#16 Le 10/08/2017, à 10:50
- LeoMajor
Re : application au démarrage
salut,
juste pour info
DBUS_SESSION_BUS_ADDRESS est crée lorsqu'on se connecte par *pam_dbus
d'autres possibilités;
dbus-send --session --type=method_call --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.IsSessionRunning
method return time=1502357451.080962 sender=:1.41 -> destination=:1.241 serial=426 reply_serial=2
boolean true
>regarder du côté de d-feet pour les méthodes sur le dbus.
loginctl show-session $XDG_SESSION_ID
Id=c6
User=1000
Name=toto
Timestamp=mer. 2017-08-09 18:38:39 CEST
TimestampMonotonic=23653585059
VTNr=7
Seat=seat0
Display=:0
Remote=no
Service=lightdm
Desktop=ubuntu
Scope=session-c6.scope
Leader=931
Audit=0
Type=x11
Class=user
Active=yes
State=active
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
Hors ligne