Hallo,
Betriebssystem: ist ja wohl klar... 😛
Desktopumgebung: Mate
Terminal-Emulator: rxvt-unicode
Shell: zsh/bash
ich habe wieder einmal ein Problem. Ich moechte ueber einen Starter
¹ auf dem Desktop ein Script
² ausfuehren, welches mir per "wol" erst den externen Speicher aufweckt, und danach per "sshfs" die entfernten Verzeichnisse einbindet.
Mein Problem liegt nicht darin, dass das nicht funktioniert - das macht es seit Jahren perfekt und voll zufriedenstellend. Mein Problem liegt darin, dass ich in diesem Fall nicht wie bisher das ganze aus der CLI heraus mache, sondern eben mittels Starter. Die Befehle werden auch ausgefuehrt. Das entfernte Geraet wird aufgeweckt, und die Verzeichnisse eingebunden, jedoch nur solange das Script
² aktiv ist. Sobald es beendet wurde, sind auch die mounts wieder verschwunden.
Wie laesst sich dieses Problem loesen?
1 - Der Starter: ~/Desktop/NAS-Server.desktop
[Desktop Entry]
Version=1.0
Name=NAS-Server
Comment=Wake NAS and mount Storages
Exec=urxvt -e zsh -c /usr/local/bin/wnas
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=System;Network;
Name[de_DE]=NAS-Server
2 - Das Script: /usr/local/bin/wnas (gekuerzt)
#!/bin/bash
### Pruefe auf Onlinestatus Server, binde Netzwerkspeicher ein
if [ "$(ls -A /mnt/sshfs/daten)" ]; then
echo "...bereits eingebunden"
else
wol 00:22:... &&
echo "warte 10 Sekunden auf Festplattenstart" &&
sleep 10 &&
sshfs $USER@...:/mnt/daten /mnt/sshfs/daten -C -o users,allow_other,port=1234,IdentityFile=/home/$USER/.ssh/id_nas_$USER
sshfs $USER@...:/mnt/music /mnt/sshfs/musik -C -o users,allow_other,port=1234,IdentityFile=/home/$USER/.ssh/id_nas_$USER
if [ "$USER" = "X" ]; then
sshfs $USER@...:/mnt/daten/X/.Virtual /home/X/.Virtual -C -o users,allow_other,port=1234,IdentityFile=/home/X/.ssh/id_nas_X
fi
echo "... erledigt"
fi
exit 0
Probiert habe ich bereits verschiedene Varianten mit & am Ende der Befehlszeilen und sogar eine Dummy-Datei, die mir /usr/local/bin/wnas nochmal in einem neuen Terminal-Emulator oeffnet. Auch Variationen mit vorangestelltem exec, sh -c oder exec sh -c brachten nicht den gewuenschten Erfolg.
Nochmal zur Erinnerung: im Code-Feld geteilte /usr/local/bin/wnas funktioniert hervorragend, wenn ich haendisch einen Terminal-Emulator oeffne und die Datei von diesem aus ausfuehre. Nur vom Starter aus funktioniert es nicht.
Bitte verzeiht mir meine Unwissenheit im Umgang mit Desktopumgebungen - diese benutze ich sonst nicht.
Gruss efreak4u