Autostart Terminal mit Befehlfolge


Loveboat

Erfahrenes Mitglied
#1
Hallo zusammen,

ich habe ein kleines Problem und hoffe Ihr könnt helfen. Wahrscheinlich ist das für Euch ein Klacks, für mich allerdings nicht.

Mein Ubuntu-Server 16.04 startet automatisch in den Desktop (ja so gewollt und verlangt).
Danach soll folgendes passieren:

- Autostart Terminal
- In Programm-ordner "/path/to/app/" wechseln
- Programm "./app" mit sudo und Passwordeingabe starten.

Da die App Java benötigt muss ich wohl warten bis der Desktop da ist.
Ein manuelles starten der App funktioniert:
Code:
sudo ./app
Allerdings muss ich danach das Kennwort noch eingeben. Wie funktioniert das automatisch?

Hoffe Ihr könnt helfen.

Danke und Gruß
Loveboat
 

Bratkartoffel

gebratene Kartoffel
Premium-User
#2
Hi,

du kannst sudo dazu bringen, das Passwort von STDIN zu lesen. Somit kannst du einfach wie folgt das Passwort übergeben:
Bash:
echo "meinPasswort" | sudo -S ./app
# oder besser
echo "meinPasswort" >~/.sudoPwd && sudo -S ./app <~/.sudoPwd & rm -f ~/.sudoPwd
Bei ersterer Variante kann jedoch jeder Benutzer, der Zugriff auf die Prozessliste hat dein Passwort lesen. Von daher würde ich Variante 2 bevorzugen, hier wird das Passwort nur über eine temporäre Datei übergeben.

Beides ungetestet, da ich im Moment kein Linux da habe. Sollten aber zumindest als Denkanstoss reichen.

Da die App Java benötigt muss ich wohl warten bis der Desktop da ist.
Zeigt die Java-App ein Fenster an? Sprich, hat diese eine grafische Oberfläche? Falls nicht, dann kannst du Java im "headless" Modus laufen lassen, dann brauchst du keinen Desktop. Einfach in der Umgebungsvariable "JAVA_OPTS" eine Option setzen und testen:
Bash:
JAVA_OPTS="-Djava.awt.headless=true"
Grüsse,
Simon
 
Zuletzt bearbeitet:

Loveboat

Erfahrenes Mitglied
#3
Hallo Simon,

vielen Dank für Deinen Tip, der mich noch "überfordert".

Die App, die gestartet wird, benutzt Java und es öffnet sich kurz ein Fenster, was dann aber wieder verschwindet. Im Terminal selber läuft die App aber noch weiter, könnte die mit "ctrl + c" abbrechen.

Wäre nett wenn Du mir eine Step-by-Step-Anleitung geben könntest was ich machen muss. Bin leider ein Windows-User der sich mal auf Linux umschauen muss. :-(

Hier noch mal die Anleitung der Schritte, die ich machen muss um die App manuell zu starten:

1. Terminal öffnen
2. In ein Verzeichnis "x" wechseln
3. Eine Anwendung via "sudo ./app_Name" starten
4. Password eingeben.

Das sollte beim Start des PC's automatisch ablaufen. Dabei wird das Terminal nicht geschlossen.

Danke und Gruß
Loveboat
 

Loveboat

Erfahrenes Mitglied
#5
Hi,

es ist Gnome, die Default-bei Ubuntu 16.04 die ich via ubuntu-desktop installiert habe.
Via "hardinfo" finde ich "Desktop Enviremont = Unity"
Brauchst noch was?

Gruß
Loveboat
 
#8
Naja, wenn man zuerst nicht gewusst hat, dass das zwei verschiedene Sachen sind, könnte man jetzt mit dem Wissen einfach nochmal genau nachdenken was man installiert hat...

Wenn man das auch nicht mehr weiß, "dpkg --get-selections" ausführen und die Ausgabe herzeigen.