< Programme zeitgesteuert starten >

Automatisches Ausführen von Programmen nach einer bestimmten Zeit nach dem Systemstart

    Problem

    Der Rechner braucht Stunden zum Hochfahren also schaltet man die Maschine an und geht erstmal Kaffee kochen. Wenn man wiederkommt wäre es gut, seinen Arbeitsplatz schon fertig vorzufinden.

    Lösung

    Man könnte alle wichtigen Arbeitsprogramme (z.B. E-Mail, Internetbrowser, Messenger, Textverarbeitung, Kalkulation, ...) in den Autostartordner des Betriebssystems legen. Leider gibt es immer wieder Tage, an denen man nur einige der gewählten Programme braucht und mit dieser Lösung die Startzeit nur unnötig in die Länge zieht. Also braucht man eine Möglichkeit, im Notfall auch mal den Autostart-Vorgang abzubrechen.
    Dies ist unter Linux und Windows mit einfachen Mitteln möglich. Der Taskplaner (Windows), das AT-Kommando oder CRON-Jobs (beide Linux) sind für diesen speziellen Anwendungsfall leider sehr unflexibel, da sie hauptsächlich die Möglichkeit bieten, Programme zu einer bestimmten, festgelegten Zeit zu starten. (z.B. 10 Sekunden oder 5 Minuten nach dem Start oder jeden Tag zur Mittagszeit.)

    Linux

    Getestet unter Ubuntu. Vorgehensweise für Debian, Mandriva, Mint, Red Hat, Fedora, CentOS, SuSE/openSuSE und andere sollte ähnlich sein.

    > Shellskript

    Mit Hilfe von Zenity kann man grafische Abfragen unter dem Gnome-Desktop erstellen (GUI, Graphical User Interface) und die Ergebnisse wieder an die Konsole zurückgeben. Das Programm ist schon Bestandteil vieler Distributionen und muss nicht extra installiert werden. Alternativen (mit ähnlicher Bedienung) wären gdialog, dialog, Xdialog, cdialog oder KDialog (KDE).

    #!/bin/bash
    zenity --question --timeout=30 --text="Starte Programme in 30 sec automatisch" --title="Autostart"; STATUS=$?
    if [ $STATUS = "1" ]; then
    	echo ""
    else
    	firefox & thunderbird & openoffice.org & pidgin
    fi

    [img] Autostart Linux Zenity

    Erläuterungen

    #!/bin/bash Benutzt die BASH-Shell zum Ausführen. (muss aber nicht zwingend /bash sein)
    --question Erstelle einen Fragedialog mit OK und Abbrechen.
    --timeout=30 Warte 30 sec auf eine Eingabe.
    --text="" Text, der angezeigt werden soll.
    --title="" Titel des Fensters.
    STATUS=$? Speichert den Rückgabewert in der Variablen $STATUS.
    if [ $STATUS = "1" ]; then Wenn Rückgabewert 1 (Nutzer hat "Abbrechen" gedrückt), dann ...
    echo "" ... gib nichts aus. (irgend ein Befehl muss in dem IF-Zweig angeben werden)
    else ... sonst (Rückgabewert 0 = OK, 5 = TimeOut) ...
    programm1 & programm2 & ... Starte Programme gleichzeitig.
    fi Ende des IF-Zweigs.

    > Autostart

    Das obige Shellskript muss nun nur noch beim Systemstart geladen werden.
    Die Datei für den Autostart hängt von der jeweiligen Distribution ab, befindet sich jedoch häufig unter /etc/init* Glücklicherweise muss sich heute aber niemand mehr damit rumschlagen, sondern kann über die verschiedenen Systemeinstellungen seine Startprogramme verwalten.

    > "Portable" Skype für Linux

    Unter Windows kann man Skype mit den Optionen /datapath und /removable starten um seine Daten nicht im persönlichen Verzeichnis zu hinterlassen. (Siehe Abschnitt Windows oder diesen Artikel.)
    Auch die Linux-Version unterstützt einen ähnlichen Parameter namens "--dbpath". Zum Aufruf von Skype auf einem USB-Stick schreibt man in der Konsole also:

    /media/USB-Laufwerk/Skype.ix/skype.real --dbpath=/media/USB-Laufwerk/Meine-Skype-Daten
    

    Auf einem älteren OpenSUSE-System gab es Probleme, die "skype.real"-Datei direkt zu starten. Stattdessen erfolgte der Aufruf über ein Shell-Skript. Darin wird das Programm vom USB-Laufwerk gestartet und legt seine Daten weiterhin im HOME-Verzeichnis ab. Wenn "Portable Skype" geschlossen wird, werden die Nutzerdaten und das Chat-Protokoll komplett gelöscht.

    #!/bin/sh
    LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so  /media/USB-Laufwerk/Skype.ix/skype.real "$@"
    
    # Variante 1: Das gesamte Skype-Verzeichnis unter HOME löschen
    # Vorsicht! Alle Konten unter dem aktuellen Linux-Nutzerprofil werden gelöscht!
    # rm -r ~/.Skype
    
    # Variante 2: Nur das eigene Nutzerverzeichnis im Skype-Verzeichnis in HOME löschen
    rm -r ~/.Skype/mein_Skype-Nutzername
    

    Das Skript und das Programm befinden sich nach einer vorherigen Skype-Installation unter /usr/bin/ und können direkt auf ein USB-Laufwerk kopiert werden. Alternativ kann man auch ein Installationspaket von skype.com herunterladen und die benötigten Dateien selbst entpacken.

    Windows

    Getestet unter Windows XP. Vorgehensweise für Windows 2000, Windows Vista, Windows 7, Windows Server 2003, Server 2008 und andere sollte ähnlich sein.

    > Visual Basic Skript (WSH, VBS)

    Der Windows Scripting Host bietet ein PopUp Abfragefenster an und wertet die jeweilige Antwort aus.

    Dim result
    
    	set shell = CreateObject("WScript.Shell")
    	result = shell.PopUp ("Starte Programme in 30 sec",30,"Anwendungen starten?",48 + 1)
    
    	If result = 1 Then ' 1 = OK
    		startPrograms()
    	ElseIf result = 2 Then ' 2 = Abbrechen
    	'	tue nichts
    	Else ' TimeOut
    		startPrograms()
    	End If
    
    Function startPrograms()
    
    	Set shell = CreateObject("WScript.Shell")
    	shell.exec("taskmgr.exe")
    	shell.exec("Z:\Internet\Mozilla Thunderbird\thunderbird.exe -P "+Chr(34)+"Nutzername"+Chr(34)+"")
    	shell.exec("Z:\Internet\Mozilla Firefox\Firefox.exe")
    	shell.exec("Z:\Internet\Skype\Phone\skype.exe /datapath:"+Chr(34)+"Data"+Chr(34)+" /removable /nosplash /minimize")
    	shell.exec("explorer.exe X:\Dokumente und Einstellungen\Nutzername\Eigene Dateien\Studium\Hausarbeit")
    	
    End Function

    [img] Autostart Windows VBS WSH

    Erläuterungen

    Dim result Variable definieren.
    set shell = CreateObject("WScript.Shell") Variable für Shell-Objekt definieren.
    shell.PopUp("Text", Wartezeit, "Titel", Typ) Ein Popup-Fenster mit Text und Titel öffnen und nach 30 sec wieder schließen.
    48 + 1 Das Abfragefenster mit OK- und Abbrechen-Knopf erstellen (1) und ein Ausrufezeichen als Symbol benutzen (48).
    If Then ... ElseIf Then ... Else ... End If Abfragebedingungen
    startPrograms() Funktion mit einer Liste zu startender Programme.
    shell.exec("taskmgr.exe") Taskmanager starten.
    shell.exec("Z:\Internet\Mozilla Thunderbird\thunderbird.exe -P "+Chr(34)+"Nutzername"+Chr(34)+"") Starte Thunderbird mit Profil des Nutzers "Nutzername" (thunderbird.exe -P "Nutzername").
    shell.exec("Z:\Internet\Mozilla Firefox\Firefox.exe") Starte Firefox ohne ein bestimmtes Profil.
    shell.exec("Z:\Internet\Skype\Phone\skype.exe /datapath:"+Chr(34)+"Data"+Chr(34)+" /removable /nosplash /minimize") Starte Skype im Portable-Modus und minimiert ohne Willkommensbildschirm. (skype.exe /datapath:"Data" /removable /nosplash /minimize). Nützlich für USB-Laufwerke (Wechseldatenträger) oder verschlüsselte Festplatten.
    shell.exec("explorer.exe X:\Dokumente und Einstellungen\Nutzername\Eigene Dateien\Studium\Hausarbeit") Öffne den Windows-Eplorer mit dem obigen Ordner.

    > Autostart

    Das obige Skript muss nun nur noch beim Systemstart geladen werden. Der Autostart-Ordner befindet sich zumeist unter Start > Programme > Autostart.

    Hardware Autostart

    Um den Rechner selbstständig zu einer bestimmten Zeit starten zu lassen, gibt es in fast jedem modernen BIOS eine Einstellung zum automatischen Aufwecken des Rechners. (Es gibt übrigens auch eine Option zum Aufwecken über das Netzwerk: Wake On Lan, WOL). Das BIOS (Grundeinstellungen des Computers) erreicht man bei den meisten Rechnern durch Drücken der Entfernen-Taste oder F2 vor dem Start des Betriebssystems. Für weitere Informationen schlagen Sie bitte im Handbuch Ihres Mainboards nach. Bitte beachten Sie, dass der Rechner für das automatische Starten dauernd ans Stromnetz angeschlossen sein muss und das eine falsche Einstellung im BIOS Ihre Hardware beschädigen kann!

    Download

    Alle Skripte stehen zum freien Download bereit.


    Verwandte Themen: Downloads PC Shutdown TrueCrypt

    Seite bewerten:  
      2.73/5 Punkten (33 Bewertungen)
    2.73/5 33