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 10/08/2023, à 21:31

alrito

Être en tant qu'utilisateur dans une exécution automatique

Bonjour,

Mon but est d'afficher un explorateur de fichier wine se dirigeant vers mon cd ou dvd de jeu à chaque fois que j'en insert un.

Donc j'ai prévue un fichier auto.sh rangé dans "/usr/local/bin" contenant ceci :

#!/bin/bash

CDROM=~/.wine/dosdevices/i:

cd $CDROM && wine explorer i:

Puis, une régle udev appeler 99-auto.rules rangé dans "/etc/udev/rules.d" contenant ceci :

KERNEL=="sr0", ACTION=="change", RUN+="/usr/local/bin/auto.sh"

Et quand tout ça est rangé dans les dossiers prévue, que je fais les commandes suivantes :

sudo udevadm control --reload
sudo udevadm control --log-priority=debug
journalctl -f

Et bien quand j'insère un cd de jeu, je me retrouve avec ceci dans les logs

systemd-udevd[52144]: sr0: '/usr/local/bin/auto.sh'(err) '/usr/local/bin/auto.sh: line 5: cd: /root/.wine/dosdevices/i:: No such file or directory

Ça ne marche pas.
Si j"exécute le script dans un gestionnaire de fichier est ba là il fonctionne.
J'en conclu que je suis en tant que root si on voit après "line 5" :

cd : /root/....

Pourtant, je suis bien dans ma session utilisateur.

J'ai tester aussi dans la régle udev, le fameux OWNER et GROUP pour désigner un utilisateur et un groupe mais c'est pareil.

Comment on fait pour être en tant qu'utilisateur dans ce cas là ?

Dernière modification par alrito (Le 10/09/2023, à 12:04)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#2 Le 10/08/2023, à 21:51

Watael

Re : Être en tant qu'utilisateur dans une exécution automatique

salut,

KERNEL=="sr0", ACTION=="change", RUN+="su alrito -c /usr/local/bin/auto.sh"

?

Dernière modification par Watael (Le 10/08/2023, à 21:51)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 10/08/2023, à 21:55

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Ça ne marche pas et sur les logs ça me donne ça :

 systemd-udevd[55190]: sr0: Process 'su alrito -c /usr/local/bin/auto.sh' failed with exit code 1.

Dernière modification par alrito (Le 28/10/2023, à 19:23)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#4 Le 10/08/2023, à 22:09

Watael

Re : Être en tant qu'utilisateur dans une exécution automatique

et indiquant le chemin absolu de su ?

alrito est bien ton identifiant de connexion sur ta machine, non ?

Dernière modification par Watael (Le 10/08/2023, à 22:10)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 12/08/2023, à 15:09

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Pour tout te dire, j'ai deux systèmes d'exploitations sur deux disques séparements.
L'un pour le développement (allan) et l'autre (alrito) pour l'utilisation disons propre (sans bidouille)
mais que ça soit l'un ou l'autre, le résultat est le même car j'ai tester sur les deux et avec le chemin absolu de su (/bin/su).

J'ai une suggestion quand même.

Si on le faisait passer non pas par udev mais par la barre des tâches.
Comme quand ton insère un support est qui s'affiche sur la barre des tâches (Périphérique connecter)
Comme ça je serai peut-être en tant qu'utilisateur ??

Dernière modification par alrito (Le 28/10/2023, à 19:23)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#6 Le 13/08/2023, à 10:35

bruno

Re : Être en tant qu'utilisateur dans une exécution automatique

Bonjour,

CDROM=~/.wine/dosdevices/i:
CDROM=/home/alrito/.wine/dosdevices/i:

Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#7 Le 13/08/2023, à 13:58

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Tu m'a donné une bonne piste en changeant le chemin dans le script mais ensuite à l'exécution, il me mais ça :

sr0: Running command "/usr/local/bin/auto.sh"
systemd-udevd[8427]: sr0: Starting '/usr/local/bin/auto.sh'
systemd-udevd[8427]: Successfully forked off '(spawn)' as PID 8438.
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) '002c:err:virtual:try_map_free_area mmap() error Operation not permitted, range 0x100000000-0x100076000, unix_prot 0x7.'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) '002c:err:virtual:try_map_free_area mmap() error Operation not permitted, range 0x20000-0x96000, unix_prot 0x7.'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) '002c:err:virtual:try_map_free_area mmap() error Operation not permitted, range 0x7fff0000-0x80066000, unix_prot 0x7.'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) 'wine: failed to start L"C:\\windows\\system32\\wineboot.exe"'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) '0024:err:environ:run_wineboot failed to start wineboot c0000017'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) '0024:err:virtual:try_map_free_area mmap() error Operation not permitted, range 0x110000-0x149000, unix_prot 0x7.'
systemd-udevd[8427]: sr0: '/usr/local/bin/auto.sh'(err) 'wine: failed to load start.exe: c0000017'
systemd-udevd[8427]: sr0: Process '/usr/local/bin/auto.sh' failed with exit code 23.
systemd-udevd[8427]: sr0: Command "/usr/local/bin/auto.sh" returned 23 (error), ignoring.

Dernière modification par alrito (Le 28/10/2023, à 19:24)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#8 Le 16/08/2023, à 18:34

Watael

Re : Être en tant qu'utilisateur dans une exécution automatique

au fait

Mon but est d'afficher un explorateur de fichier wine

mais pourquoi ? smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 16/08/2023, à 18:42

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Le fais d'afficher l'explorateur de fichier wine est un test.

Mon vrai but est de réaliser une exécution automatique de programme (GNU\Linux, windows) à l'insertion d'un support amovible.

Voilà smile

Dernière modification par alrito (Le 28/10/2023, à 19:28)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#10 Le 17/09/2023, à 14:17

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Je me demande si je peut passer par un autre processus que udev mais lequel ?


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#11 Le 17/09/2023, à 20:45

Sciensous

Re : Être en tant qu'utilisateur dans une exécution automatique

à voir:
avec la regle  udev, dans le script (lancé par root donc), faire un:

sudo -u alrito scriptpourwine

avec dans le scriptpourwine, mettre les export DISPLAY et XAUTHORITY qui vont

hmm


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#12 Le 30/09/2023, à 00:56

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

J'ai mis ce que tu as écris en bash dans mon script et ça ne marche pas.
En mettant un disque, on dirais qu'il bute à un endroit dans wine et il plante.

Aussi...

Sciensous a écrit :

avec dans le scriptpourwine, mettre les export DISPLAY et XAUTHORITY qui vont

Comment on fait ??  smile

Dernière modification par alrito (Le 28/10/2023, à 19:28)


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#13 Le 30/09/2023, à 01:22

Watael

Re : Être en tant qu'utilisateur dans une exécution automatique

udev ne s'exécute-t-il pas en tant que root ? alors, sudo est superflu, il vaut mieux directement utiliser su.

alrito a écrit :

comment on fait ?

un exemple avec monCode.sh :

#!/bin/sh

maFonc() { echo "$maVar";}

maVar='foo bar' maFonc
$ ./monCode.sh
foo bar
$

ce qui fonctionne ici pour une fonction marche pour toutes les commandes; il s'agit de "variables d'environnement locales" : elles sont définies dans localement uniquement dans  l'environnement de la commande précédée par la définition des variables.

Dernière modification par Watael (Le 30/09/2023, à 01:26)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#14 Le 03/01/2024, à 22:39

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Meilleurs voeux à tous le monde dans la dscussion.

J'y reviens après quelque temps passer à autre chose et je me pose cette question :

Est-ce qu'on peut faire fonctionner le script en tant qu'utilisateur par un service systemd ?

Si oui, je ne sais pas comment m'y prendre sad


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne

#15 Le 04/01/2024, à 00:50

k3c

Re : Être en tant qu'utilisateur dans une exécution automatique

pour un script systemd en tant qu'utilisateur, tu peux regarder ce que j'ai posté

(c'est du wine, d'ailleurs)

https://forum.ubuntu-fr.org/viewtopic.php?id=2082189

Dernière modification par k3c (Le 04/01/2024, à 00:50)


Archlinux sur Xiaomi Air 13

Hors ligne

#16 Le 04/01/2024, à 20:45

alrito

Re : Être en tant qu'utilisateur dans une exécution automatique

Salut k3c,

Ton poste m'a aider pour faire le fichier et j'ai procéder comme suit :

Création du fichier dans ~/.config/systemd/user/Autorun.service

[Unit]
Description=Autorun CD
[Service]
Type=forking
ExecStartPre=/opt/wine-stable/bin/wineboot -i
ExecStart=/usr/local/bin/autofs.sh
TimeoutSec=84666
[Install]
WantedBy=graphical-session.target

Puis passer la commande de prise en compte

systemctl --user enable Autorun.service

Alors maintenant, quand j'execute cette commande sur un terminal :

systemctl --user start Autorun.service

J'ai bien autofs qui démarre correctement mais là ou je voudrais que ça marche, c'est au montage de mon cdrom et là ça ne marche pas


Carte mère : Gigabyte B365-HD3 - Processeur : Intel Core I5 - Ram : 8 Go - Disque dur : SSD nvme 1 T - Système d'exploitation : Kubuntu 22.04 - Emulateur divers : Winehq (9.0), Epsxe

Hors ligne