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 07/04/2021, à 13:25

boubchat

Service dropbox

Bonjour à tous,

Je dois créer un service (que nous appelerons X)  par systemd. Ce system X.service doit se lancer dès que la dropbox s'est allumée (donc "After = dropbox.service" ou qq chose comme ca).
La dropbox doit quand à elle se lancer juste après le démarrage.

Au début, j'avais mis la dropbox en démarrage automatique au lancement grâce aux '"préférences des applications au démarrage (en interface user), mais comme je n'ai pas trouvé de dropbox.service créé automatiquement du fait du GUI, je n'avais rien à mettre dans le "after" du service X.

Qu'a cela ne tienne, je me suis dit j’enlève la dropbox des préférences des applications au démarrage et je vais le faire à la main.

Du coup j'ai fait (Ubuntu 20.04):

[Unit]
Description=allumer dropbox
DefaultDependencies=no
After=network-online.target 

[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/home/charlotte/.dropbox-dist/dropboxd start

[Install]
WantedBy= network-online.target

j'ai ensuite fait:

systemctl enable dropbox.service
systemctl enable dropbox.service
systemctl start dropbox.service

et quand je le lance le start, il block, il est revenu à la ligne, attendant qq chose et la dropbox n'est pas lancée (pas de symbole dropbox dans le panneau en haut à droite, pas non plus d'erreur, juste un retour à la ligne, comme si il réfléchissait).

Puis:

● dropbox.service - Execution Allumage
     Loaded: loaded (/etc/systemd/system/dropbox.service; enabled; vendor preset: enabled)
     Active: activating (start) since Wed 2021-04-07 13:11:08 CEST; 2min 5s ago
   Main PID: 11066 (dropbox)
      Tasks: 45 (limit: 9370)
     Memory: 158.9M
     CGroup: /system.slice/dropbox.service
             └─11066 /home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/dropbox start

"activating" oui il doit attendre qq chose....
d'ailleurs si je fais:

/home/charlotte/.dropbox-dist/dropboxd start

j'ai:

dropbox: locating interpreter
dropbox: logging to /tmp/dropbox-antifreeze-eT5Drs
dropbox: initializing
dropbox: initializing python 3.8.8
dropbox: setting program path '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/dropbox'
dropbox: setting python path '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772:/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/python-packages.zip'
dropbox: python initialized
dropbox: setting args
dropbox: running dropbox
dropbox: applying overrides
dropbox: enabling allocator metrics
dropbox: running command
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/cryptography.hazmat.bindings._openssl.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/cryptography.hazmat.bindings._padding.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/psutil._psutil_linux.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/psutil._psutil_posix.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/apex._apex.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/tornado.speedups.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/wrapt._wrappers.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/PyQt5.QtWidgets.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/PyQt5.QtCore.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/PyQt5.QtGui.cpython-38-x86_64-linux-gnu.so'
dropbox: load fq extension '/home/charlotte/.dropbox-dist/dropbox-lnx.x86_64-119.4.1772/PyQt5.QtDBus.cpython-38-x86_64-linux-gnu.so'

(dropbox:11192): LIBDBUSMENU-GLIB-WARNING **: 13:14:21.283: About to Show called on an item wihtout submenus.  We're ignoring it.

il reste bloqué, attend comme précédemment et ne revient pas aux lignes de commande. Du coup je me suis demandé s'il n'attendais pas mon nom, ou mon mot de passe ?

J'ai essayé de regardé sur:
https://hashbangwallop.com/dropbox-service.html
https://github.com/joeroback/dropbox
https://www.bbkane.com/blog/dropbox-as- … d-service/
https://wiki.archlinux.org/index.php/Dropbox
https://askubuntu.com/questions/806445/ … on-at-boot

Mais rien n'a marché. Est-ce que quelqu'un a une idée ?

Merci beaucoup par avance

Cha

Hors ligne

#2 Le 07/04/2021, à 16:18

Zakhar

Re : Service dropbox

Je ne sais comment "techniquement" est fait le driver Dropbox.

Le plus naturel sous Linux est de faire du "fuse", et dans ce cas ce que tu avais fait la première fois est la bonne chose.

En effet, un driver fuse tourne en "userland" sous les droits de l'utilisateur qui l'a lancé... et on évite de faire ça en root pour des raisons de sécurité. Donc le bon endroit pour un "driver fuse" est bien où tu l'avais mis.

S'il est intégré avec PAM pour sa sécurité, il va effectivement bénéficier du fait que tu as déverrouillé ta session pour ouvrir le "keyring" et récupérer son propre mot de passe.

Donc si l'énoncé est effectivement de faire un "service Systemd"... là c'est possiblement un peu raté (ou en tout cas pas simple) !
Si c'est juste de démarrer quelque chose après dropbox, il suffit de faire un script qui lance Dropbox, puis le service, et de mettre cela en démarrage auto à la session au lieu de juste dropbox.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 07/04/2021, à 21:15

boubchat

Re : Service dropbox

Merci Zakhar pour ta réponse, le souci c'est que j'y arrive même pas:

[Unit]
Description=Execution Allumage
DefaultDependencies=no
After=network-online.target 

[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/home/cha/Documents/ChaScripts/launchDropbox.sh

[Install]
WantedBy= network-online.target

avec launchDropbox.sh:

#!/bin/sh

dropbox start

var=$(dropbox status)

echo $var > /home/cha/Documents/ChaScripts/quote1.txt

Quand je lance le launchDropbox.sh directement il lance la dropbox et créé le fichier quote1.txt
Quand je lance le service il créé le fichier mais la dropbox n'est pas lancée:

dropbox status
Dropbox isn't running!

c'est très enervant big_smile

quelqu'un comprend?

Hors ligne