logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 19-05-2018 19:56:20

cocowin
Membre
Distrib. : Debian testing
Noyau : Linux 4.16.0-1-amd64
(G)UI : LXQt
Inscription : 05-05-2018

Exécuter automatiquement, après connexion, un script en root

Ok, le titre est tout sauf clair, j'explique la situation.

Utilisant le service de stockage en ligne MEGA, j'ai voulu installer leur client MEGAsync sur ma Debian. J'ai télécharger le .deb officiel, l'ai installé avec dpkg, pas de problème de dépendance, tout va bien. Il est maintenant installé et apparaît dans le "menu démarrer".

Jusque là tout est normal.

Sauf que j'essaie de lancer le client, et... aucune réaction. Rien ne se passe.

J'ouvre un émulateur de terminal et tape "megasync". Le terminal réagit comme lorsqu'il lance un programme (le curseur fait un retour à la ligne et reste tout à gauche de la fenêtre), et... plus rien. Il reste comme ça indéfiniment.

La solution que j'ai trouvé est de me connecter en root, puis d'exécuter megasync, et là il se lance parfaitement (et bien sûr, le client se ferme lorsque je ferme l'émulateur de terminal).

La solution pour utiliser le client est donc :

1. Ouvrir un émulateur de terminal
2. Me connecter en root
3. Taper :

megasync &


4. Fermer l'émulateur de terminal

J'ai contacté le support de MEGA pour voir si une solution au problème existait, mais en attendant leur réponse je crois en avoir trouver une : faire un petit script, qui se lancera à la connexion (ou au démarrage, peu importe) avec les privilège root, et qui exécute la commande "megasync &".

Question : est-ce possible et comment fait-on ?


Faisons un jeu : le premier qui dit "windobe" a perdu !

Hors ligne

#2 19-05-2018 22:21:31

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : Exécuter automatiquement, après connexion, un script en root

bonsoir
avis tout à fait personnel, une application qui ne vient pas des dépôts debian et qui doit obligatoirement être lancé en root, c'est pour moi créer une faille de sécurité dans ton système.

sinon, tu pourrais lancer ton application avec systemd
tu crée un fichier megasync.service

[Unit]
Description=Syncro Mega
After=network.target

[Service]
Type=oneshot
ExecStart= megasync

[Install]
WantedBy=multi-user.target


tu le place dans le dossier /etc/systemd/system/
tu fais

systemctl enable megasync.service
systemctl start megasync.service
systemctl status megasync.service


(tu pourra renvoyer les résultats des 3 commandes s'il te plait ?)

Hors ligne

#3 20-05-2018 08:03:18

cocowin
Membre
Distrib. : Debian testing
Noyau : Linux 4.16.0-1-amd64
(G)UI : LXQt
Inscription : 05-05-2018

Re : Exécuter automatiquement, après connexion, un script en root

Voilà voilà :

systemctl enable megasync.service


Created symlink /etc/systemd/system/multi-user.target.wants/megasync.service → /etc/systemd/system/megasync.service.



systemctl start megasync.service


Failed to start megasync.service: Unit megasync.service is not loaded properly: Exec format error.
See system logs and 'systemctl status megasync.service' for details.



Aïe crash.gif

systemctl status megasync.service


● megasync.service - Syncro Mega
   Loaded: error (Reason: Exec format error)
   Active: inactive (dead)

mai 20 08:56:46 pc-juju-debian systemd[1]: /etc/systemd/system/megasync.service:7: Executable path is not absolute


Faisons un jeu : le premier qui dit "windobe" a perdu !

Hors ligne

#4 20-05-2018 08:39:40

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : Exécuter automatiquement, après connexion, un script en root

essais en utilisant le chemin complet vers megasync

edit
et je viens de voir qu'il y avait un espace dans
ExecStart= megasync
entre le = et megasync   
c'est peut être ça l'erreur (désolé ma faute neutral)

Dernière modification par Severian (20-05-2018 08:41:19)

Hors ligne

#5 20-05-2018 09:01:24

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : Exécuter automatiquement, après connexion, un script en root

Salut
vérifier que libc-ares2 est installé

apt policy libc-ares2


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#6 20-05-2018 09:06:12

cocowin
Membre
Distrib. : Debian testing
Noyau : Linux 4.16.0-1-amd64
(G)UI : LXQt
Inscription : 05-05-2018

Re : Exécuter automatiquement, après connexion, un script en root

J'ai donc recréé le fichier megasync.service comme ceci :

[Unit]
Description=Syncro Mega
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/megasync

[Install]
WantedBy=multi-user.target



systemctl enable megasync.service



systemctl start megasync.service


Job for megasync.service failed because the control process exited with error code.
See "systemctl status megasync.service" and "journalctl -xe" for details.



systemctl status megasync.service


● megasync.service - Syncro Mega
   Loaded: loaded (/etc/systemd/system/megasync.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2018-05-20 09:49:49 CEST; 14min ago
  Process: 17222 ExecStart=/usr/bin/megasync (code=exited, status=1/FAILURE)
 Main PID: 17222 (code=exited, status=1/FAILURE)

mai 20 09:49:49 pc-juju-debian systemd[1]: Starting Syncro Mega...
mai 20 09:49:49 pc-juju-debian megasync[17222]: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runti
mai 20 09:49:49 pc-juju-debian megasync[17222]: qt.qpa.screen: QXcbConnection: Could not connect to display
mai 20 09:49:49 pc-juju-debian megasync[17222]: Could not connect to any X display.
mai 20 09:49:49 pc-juju-debian systemd[1]: megasync.service: Main process exited, code=exited, status=1/FAILURE
mai 20 09:49:49 pc-juju-debian systemd[1]: megasync.service: Failed with result 'exit-code'.
mai 20 09:49:49 pc-juju-debian systemd[1]: Failed to start Syncro Mega.



Si je remplace "/usr/bin/megasync" par "megasync" (sans l'espace cette fois tongue ) le résultat est identique.

@Croutons oui, libc-ares2 est installé en version 1.14.0-1

EDIT : quand je fait "megasync" en root, le client se lance, et la console affiche ça :

QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0


Cela pourrait aider ?

Dernière modification par cocowin (20-05-2018 09:23:57)


Faisons un jeu : le premier qui dit "windobe" a perdu !

Hors ligne

#7 20-05-2018 09:55:26

Severian
Membre
Distrib. : Debian GNU/Linux 9.4 (stretch)
Noyau : Linux 4.14.0-0.bpo.3-amd64
(G)UI : Openbox 3.6.1-4
Inscription : 13-12-2014

Re : Exécuter automatiquement, après connexion, un script en root

hummm l'application a besoin que la session graphique soit lancé
du coup je ne sais pas trop comment faire avec systemd

edit
pour arrêter proprement megasync.service

systemctl stop megasync.service
systemctl disable megasync.service

Dernière modification par Severian (20-05-2018 09:57:16)

Hors ligne

#8 20-05-2018 11:15:29

cocowin
Membre
Distrib. : Debian testing
Noyau : Linux 4.16.0-1-amd64
(G)UI : LXQt
Inscription : 05-05-2018

Re : Exécuter automatiquement, après connexion, un script en root

Ok, j'ai décidé de supprimer Megasync et d'utiliser l'outil en ligne de commande, mega-cmd.

Par contre j'ai maintenant une autre question : il faudrait que la commande "mega-sync" s'exécute (pas en root cette fois) juste après l'allumage et juste avant l'extinction de la machine. Comment fait-on ? Où dois-je mettre le script ? J'ai cherché sur google, mais entre les .bashrc, .bash_login, .bash_profile, .profile, .xinitrc, ... J'y comprend pas grand chose. scratchhead.gif

(EDIT : je démarre en interface graphique avec sddm sur lxqt.)

Dernière modification par cocowin (20-05-2018 11:28:47)


Faisons un jeu : le premier qui dit "windobe" a perdu !

Hors ligne

Pied de page des forums