.sh script beim Systemstart starten
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
.sh script beim Systemstart starten
Hallo,
ich bin Neuling und habe schon einiges gelesen.
Ich versucher jetzt schon seit Stunden ein .sh Script beim Systemstart automatisch zu starten.
Bitte kann mir jemand sagen in welche Autostart-Datei ich das einfügen muss und wie die genaue
Befehlszeile lautet ?
danke im voraus.
mfg
ich bin Neuling und habe schon einiges gelesen.
Ich versucher jetzt schon seit Stunden ein .sh Script beim Systemstart automatisch zu starten.
Bitte kann mir jemand sagen in welche Autostart-Datei ich das einfügen muss und wie die genaue
Befehlszeile lautet ?
danke im voraus.
mfg
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
/etc/rc.local böte sich an, da könntest du eine Zeile wie
einfügen, "exit 0" muss aber die letzte Zeile bleiben und "/usr/local/bin/meinSkript.sh" muss ausführbar sein.
Code: Alles auswählen
/usr/local/bin/meinSkript.sh &
Re: .sh script beim Systemstart starten
Die elegantere methode ist ein .service datei unter /etc/systemd/system anzulegen
Links:
Vergleiche mal
/lib/systemd/systemd-remount-fs.service
Beste hilfe zu systemd Service unit configuration: http://www.freedesktop.org/software/sys ... rvice.html
Siehe auch: https://wiki.archlinux.org/index.php/Systemd
Code: Alles auswählen
[Unit]
Description=Dein Script
Requires=[Was eventuell zuerst gestartet werden muss]
[Service]
Type=oneshot
ExecStart=/usr/local/bin/meinSkript.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Vergleiche mal
/lib/systemd/systemd-remount-fs.service
Beste hilfe zu systemd Service unit configuration: http://www.freedesktop.org/software/sys ... rvice.html
Siehe auch: https://wiki.archlinux.org/index.php/Systemd
rot: Moderator wanne spricht, default: User wanne spricht.
Re: .sh script beim Systemstart starten
Oder ein startscript in /etc/init.d/ ? Die Methode mit /etc/rc.local kenne ich auch aber das mit /etc/systemd/system kenne ich noch nicht nicht.
Was ist der Unterschied wenn ich ein Script da oder in init.d Ordner erstelle?
Was ist der Unterschied wenn ich ein Script da oder in init.d Ordner erstelle?
Re: AW: .sh script beim Systemstart starten
Ich empfehle dir, dass über systemd zu machen. Du benötigst dazu nur ein kleines Service-Unit-File, in der das zu startende Programm oder Script drinsteht und zu welcher Zeit (entsprechend zu ggf. notwendigen Abhängigkeiten) es gestartet werden soll.Gelbervogel hat geschrieben:Ich versucher jetzt schon seit Stunden ein .sh Script beim Systemstart automatisch zu starten.
Bitte kann mir jemand sagen in welche Autostart-Datei ich das einfügen muss und wie die genaue
Befehlszeile lautet ?
Such mal hier nach "mountctrl". Das ist ein script mit einer besonderen Aufgabe von mir, welches gestartet wird, wenn der Rechner bereit ist. Daraus müsstest du alles notwendige ableiten können.
Re: AW: .sh script beim Systemstart starten
Vermutlich gibt's für das Ergebnis keinen, beides führt zum gleichen Ziel. Ich lasse jetzt aber trotzdem mal ein pro-systemd raus, in der Hoffnung, durch den möglichen Widerspruch der Fachleute selbst einen besseren Durchblick zu bekommen.Alfex hat geschrieben:Was ist der Unterschied wenn ich ein Script da oder in init.d Ordner erstelle?
Fakt ist meines Erachtens, es kann keine zwei gleichzeitig und konkurrierend arbeitenden Startsysteme geben.....d.h. systemd und sysvinit zu selben Zeit geht nicht. Und so wie ich das verstanden habe, gibt's sysvinit jetzt schon nicht mehr in Debian. Stattdessen "emuliert" systemd die Funktionalität von sysvinit. Also warum dann nicht von vornherein komplett auf systemd setzen? Ich habe mich (auch Anfänger) entschieden, nur nach vorne zu schauen und sysvinit keine Beachtung mehr zu schenken.
Jm2c
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
ich bin im Moment auf der Arbeitsmutbert hat geschrieben:/etc/rc.local böte sich an, da könntest du eine Zeile wieeinfügen, "exit 0" muss aber die letzte Zeile bleiben und "/usr/local/bin/meinSkript.sh" muss ausführbar sein.Code: Alles auswählen
/usr/local/bin/meinSkript.sh &
![traurig :(](./images/smilies/icon_sad.gif)
exakt so, bzw. (in der /etc/rc.local)
/home/gelbervogel/script.sh &
habe ich mein Script aufgerufen. Aber da passiert nichts.
Das Script ist ausführbar und startet auch mit ./script.sh manuell.
Das Script startet Firefox mit einem Link von einem Besuchertausch und überprüft alle 120 Sekunden ob noch alles läuft.
(Sinn oder Unsinn dafür ist egal
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Die andere Lösung schaue ich mir heute Abend mal an. (klingt für mich erstmal kompliziert
![Shocked 8O](./images/smilies/icon_eek.gif)
Oder liegt es an dem was ich da aufrufe, dass das nicht startet ?
mfg
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Versuch mal ob es mit curl oder wget geht, Firefox könnte nen laufendes X haben wollen und deswegen den Dienst verweigern.
Re: .sh script beim Systemstart starten
Nein, ist nicht egal.Gelbervogel hat geschrieben:[…]
Das Script startet Firefox mit einem Link von einem Besuchertausch und überprüft alle 120 Sekunden ob noch alles läuft.
(Sinn oder Unsinn dafür ist egal)
[…]
Alle bis hierher beschriebenen Varianten führen das Skript oder andere Befehle als root aus und bieten dem Programm keine richtige Konsole und Zugriff auf den X-Server, der zu dem Zeitpunkt zu dem das Skript aufgerufen wird, obendrein noch gar nicht läuft, hat es so normalerweise auch keinen - das ist hier also keinesfalls das Mittel der Wahl, es sei denn du willst doch auf Kommandozeilenprogramme beschränken, wie eggy es gerade vorgeschlagen hat.
Dein Skript sollte bei der Anmeldung des Benutzers unter seinem Account ausgeführt werden. Dazu kann man zB eine .desktop-Datei unter ~/.config/autostart anlegen. Abhängig vom Desktop gibt es aber auch andere Vorgehensweisen:
https://wiki.ubuntuusers.de/autostart
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
auch das hatte schon probiert. Hat leider auch nicht funktioniertsmutbert hat geschrieben:Dein Skript sollte bei der Anmeldung des Benutzers unter seinem Account ausgeführt werden. Dazu kann man zB eine .desktop-Datei unter ~/.config/autostart anlegen. Abhängig vom Desktop gibt es aber auch andere Vorgehensweisen:
https://wiki.ubuntuusers.de/autostart
![traurig :(](./images/smilies/icon_sad.gif)
In meinem Script wird das Prüfen, ob der Besuchertausch noch läuft, über Curl gemacht
ich nutze LXDE
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Mit diesen paar Zeilen, eingefügt relativ oben am Anfang deines Script kannst du prüfen, ob die eingestellten Automatismen überhaupt funktionieren. Es wird in Deinem HomeDir ein Log angelegt, wo Du genau sehen kann, ob das Script gestartet wurde, und (wenn) mit welchen 2 Parametern.Gelbervogel hat geschrieben:habe ich mein Script aufgerufen. Aber da passiert nichts.
Code: Alles auswählen
#Debug
d=`date +%d-%m-%Y-%H-%M-%S`
log=~/$0_Debug.Log
echo $d `basename $0`": Programm gestartet. Param:" $1 $2 >>$log
Das erzeugte Log-File aus dem Script sieht dann bei mir so aus:
/home/thomas/MyProg_Debug.Log
Code: Alles auswählen
03-09-2015-14-58-32 MyProg: Programm gestartet.
03-09-2015-14-58-36 MyProg: Programm gestartet.
03-09-2015-14-59-48 MyProg: Programm gestartet. Parameter: 10 22
03-09-2015-14-59-51 MyProg: Programm gestartet. Parameter: a bcd
03-09-2015-14-59-55 MyProg: Programm gestartet. Parameter: asdf jklö
Zuletzt geändert von TomL am 03.09.2015 15:25:44, insgesamt 2-mal geändert.
Re: .sh script beim Systemstart starten
Für was dauerhaft laufendes wäre nicht oneshot sonder simple der richtige Typ von systemd.
Aber wie schon mehrfach angemerkt, wenn da irgend was mit firefox läuft, klingt das nicht so, als ob du das beim systemstart laufen lassen willst, sondern eher erst wenn du angemeldet bist und unter dem user in der X-Session (Damit der angemeldete User was sieht.)
Aber wie schon mehrfach angemerkt, wenn da irgend was mit firefox läuft, klingt das nicht so, als ob du das beim systemstart laufen lassen willst, sondern eher erst wenn du angemeldet bist und unter dem user in der X-Session (Damit der angemeldete User was sieht.)
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
so, ich werde jetzt mal anfangen zu testen.
da ich ja Windoof-User bin, weiß ich von Debian noch zu wenig.
Habe jetzt hier aber rausgelesen, dass es beim Autostart wohl einige Ebenen gibt wo man was reinsetzen kann.
Da es beim User gestartet werden soll, wird/muss wohl der letzte Vorschlag gehen. hmmm...
Welche Ebenen gibt es alle bei Linux für den Autostart ?
da ich ja Windoof-User bin, weiß ich von Debian noch zu wenig.
Habe jetzt hier aber rausgelesen, dass es beim Autostart wohl einige Ebenen gibt wo man was reinsetzen kann.
Da es beim User gestartet werden soll, wird/muss wohl der letzte Vorschlag gehen. hmmm...
Welche Ebenen gibt es alle bei Linux für den Autostart ?
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Systemstart wird unter gerade ziemlich revuluzioniert. Siehe dazu http://www.freedesktop.org/software/sys ... rvice.html .
Hat aber wie gesagt nichts mit der Anmeldung zu tun. (Zumindest nicht bei Linux, Mac OSX und Windows NT. Bis Windows 98 war das da noch ein bisschen anders. )
Der klassische windows Autostart wird nach der Anmeldung ausgeführt (Merkst du vor allem daran, dass er für jeden Nutzer anderes ist und eben, dass es erst passiert, wenn du dein passwort eingegeben hast. Und nicht direkt beim Einschalten.).
Am ehesten entspricht wohl die LXDE funktion ~/.config/lxsession/LXDE/autostart dem.
Da kannst du das reinschreiben:
Die archler meinen ausdrücklich ohne &
oder wenn du willst, dass das Script automatisch nach dem beenden neu gestartet wird:
Quelle: https://wiki.archlinux.org/index.php/LXDE
Wahrscheinlich gienge das auch eleganter über Systemd. So gut kenne ich mich aber nicht aus.
In sofern, wenn du was neues machst: http://www.freedesktop.org/software/sys ... rvice.html
Hat aber wie gesagt nichts mit der Anmeldung zu tun. (Zumindest nicht bei Linux, Mac OSX und Windows NT. Bis Windows 98 war das da noch ein bisschen anders. )
Der klassische windows Autostart wird nach der Anmeldung ausgeführt (Merkst du vor allem daran, dass er für jeden Nutzer anderes ist und eben, dass es erst passiert, wenn du dein passwort eingegeben hast. Und nicht direkt beim Einschalten.).
Am ehesten entspricht wohl die LXDE funktion ~/.config/lxsession/LXDE/autostart dem.
Da kannst du das reinschreiben:
Code: Alles auswählen
/usr/local/bin/meinSkript.sh
oder wenn du willst, dass das Script automatisch nach dem beenden neu gestartet wird:
Code: Alles auswählen
@/usr/local/bin/meinSkript.sh
Wahrscheinlich gienge das auch eleganter über Systemd. So gut kenne ich mich aber nicht aus.
Bis wheezy wurde SystemV init und damit der init.d genutzt. Seit jessie gibt es per default Systemd. Vorübergehend funktioniert zwar der init.d Ordner weiterhin. Die Systemd Entwickler wollen aber dass das in Zukunft nicht mehr funktioniert. Die Forderung, dass Debian beide Wege aus Prinzip beibehält wurde abgeschlagen. In sofern. SystemV init unter Debian ist auf die Dauer tot.Alfex hat geschrieben:Was ist der Unterschied wenn ich ein Script da oder in init.d Ordner erstelle?
In sofern, wenn du was neues machst: http://www.freedesktop.org/software/sys ... rvice.html
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
in meinem System existiert dieser Pfad (~/.config/lxsession/LXDE/autostart) nicht
muss ich dies erstellen ?
anbieten könnte ich /home/gelbervogel/.config/lxsession/LXDE
hierin ist dann die Datei desktop.conf
oder aber /root/.config/autostart
hierin gibt es dann .desktop
hier habe ich jetzt mal
/home/gelbervogel/meinscript.sh
eingefügt.
Aber es passiert leider immer noch nichts.
muss ich dies erstellen ?
anbieten könnte ich /home/gelbervogel/.config/lxsession/LXDE
hierin ist dann die Datei desktop.conf
oder aber /root/.config/autostart
hierin gibt es dann .desktop
hier habe ich jetzt mal
/home/gelbervogel/meinscript.sh
eingefügt.
Aber es passiert leider immer noch nichts.
mfg
Gelbervogel
Gelbervogel
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
so habe ich das jetzt auch mal getestet. Tut sich aber auch nichts.wanne hat geschrieben:Die elegantere methode ist ein .service datei unter /etc/systemd/system anzulegenCode: Alles auswählen
[Unit] Description=meinscript.sh Requires=lxterminal [Service] Type=oneshot ExecStart=/home/gelbervogel/meinscript.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target
Mein gedanke war, dass das Script in lxterminal starten muss ?
Keine Ahnung
![Laughing :lol:](./images/smilies/icon_lol.gif)
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Wie Wanne schon sagte, "typ=simple".Gelbervogel hat geschrieben:so habe ich das jetzt auch mal getestet. Tut sich aber auch nichts.
Du musst die Unit einmalig aktivieren. Damit wird sie beim nächsten Boot des Systems gestartet.
Code: Alles auswählen
systemctl enable deinscript.service
Code: Alles auswählen
systemctl disable deinscript.service
Code: Alles auswählen
systemctl start deinscript.service
Code: Alles auswählen
systemctl stop deinscript.service
Code: Alles auswählen
systemctl status deinscript.service
Code: Alles auswählen
systemd-analyze plot >~/bootplot.svg
Code: Alles auswählen
systemctl daemon-reload
Das Requires-Statement beschreibt nur Abhängigkeiten, das heisst, Dein Script würde erst gestartet werden, wenn die dort eingetragenen abhängigen Jobs erfolgreich laufen. Entferne diese Zeile einfach mal und trage dafür ein:
Code: Alles auswählen
After=network-online.target
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
erstmal DANKE für eure Geduld.
Die untere Zeile habe ich nun eingetragen und diese andere entfernt.
Auch "simple" habe ich eingetragen (ersetzt)
Jetzt habe ich das Problem, dass auf meinem System kein "systemctl" gefunden wird.
Wie muss ich das installieren ? In was für einem Paket ist dies ?
Die untere Zeile habe ich nun eingetragen und diese andere entfernt.
Auch "simple" habe ich eingetragen (ersetzt)
Jetzt habe ich das Problem, dass auf meinem System kein "systemctl" gefunden wird.
Wie muss ich das installieren ? In was für einem Paket ist dies ?
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Bitte verinnerliche dir erst mal den Satz bevor du weiter machst:
Wenn du irgend was als root machst, wirst du davon als gelbervogel nichts sehen können. Wie gesgt, genau wie unter Windows, wenn du zwei Nutzer anlegst.
Wenn also gelbervogel irgend einen Firefox sehen willst, lass die Finger von su sodo oder sonst irgend was, das den Nutzer ändert. (Klar root kann über irgend welche Umwege irgendwie jedem reinfroschen, aber das willst du ganz sicher nicht.)
Wenn du irgend was als root machst, wirst du davon als gelbervogel nichts sehen können. Wie gesgt, genau wie unter Windows, wenn du zwei Nutzer anlegst.
Wenn also gelbervogel irgend einen Firefox sehen willst, lass die Finger von su sodo oder sonst irgend was, das den Nutzer ändert. (Klar root kann über irgend welche Umwege irgendwie jedem reinfroschen, aber das willst du ganz sicher nicht.)
Würde ich mal tippen. Kenne LXDE selbst nicht kann nur auf die entsprechenden wikis verweisen. Die sagen das alle. Und würde die Datei wenn's nicht tut mal ausführbar machen.Gelbervogel hat geschrieben:in meinem System existiert dieser Pfad (~/.config/lxsession/LXDE/autostart) nicht
muss ich dies erstellen ?
rot: Moderator wanne spricht, default: User wanne spricht.
Re: .sh script beim Systemstart starten
Prinzipiell inGelbervogel hat geschrieben:Jetzt habe ich das Problem, dass auf meinem System kein "systemctl" gefunden wird.
Wie muss ich das installieren ? In was für einem Paket ist dies ?
![Debian](/pics/debianpackage.png)
Der Umstieg (SystemV-init,pam,mount,cryptsetup,syslog,getty,cron...) -> systemd ist so ziemlich das größte, dass es so in den Letzten Jahren als umstieg gab. Viele distros unterstützen das upgrade gar nicht und es wird eine neuinstallation fällig. Debian macht das zwar aber du willst das nicht wegen einem kleinen Script machen. Vergiss, was ich zu systemd gesagt habe. Wie gesagt ich bin sowieso immer noch überzeugt, dass du das nicht beim Systemstart sondern erst nach der Anmeldung starten willst. Wenn da Firefox läuft, willst du den ja auch sehen, und das kannst du erst nach der Anmeldung.
Falls doch: guck dir an wie man start-stop skripte für SystemV-init schreibt. (Stichwort: /etc/init.d)
Aber zuerstmal: Welche debian Version nutzt du? Und kannst du das script nicht doch mal posten. Ich glaube das hilft ordentlich weiter.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: .sh script beim Systemstart starten
Verblüffend....Gelbervogel hat geschrieben:Jetzt habe ich das Problem, dass auf meinem System kein "systemctl" gefunden wird.
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Code: Alles auswählen
uname -a
Wenn es nicht das aktuelle Jessie ist, guckstu hier: https://wiki.ubuntuusers.de/SysVinit
Zuletzt geändert von TomL am 03.09.2015 22:23:12, insgesamt 1-mal geändert.
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
TomL hat geschrieben:Verblüffend....Gelbervogel hat geschrieben:Jetzt habe ich das Problem, dass auf meinem System kein "systemctl" gefunden wird.... gib mal im Terminal ...
... ein und kopiere mal die Ausgabe nach hierhin. Ich habe zwar lxde gelesen, aber irgendwie nix weiteres dazu.Code: Alles auswählen
uname -a
Code: Alles auswählen
Linux VM-PC-debian1 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u3 i686 GNU/Linux
und ja, ich möchte es nach der Anmeldung, wenn das System ganz hochgefahren ist, ausführen
mfg
Gelbervogel
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Dann kannst Du systemd vergessen. Das ist eine ältere Version, 3.2 klingt laut Wiki nach "Wheezy", und da gabs noch kein systemd. Also guckstu:Gelbervogel hat geschrieben:Linux VM-PC-debian1 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u3 i686 GNU/Linux
https://wiki.ubuntuusers.de/SysVinit
Wenn Du ein aktuelles Jessie haben möchstest, findest Du das hier:
ftp://ftp.nl.debian.org/debian-cd/8.1.0/
Genauer hier:
ftp://ftp.nl.debian.org/debian-cd/8.1.0/i386/iso-cd/
Dieser Iso-Installer
ftp://ftp.nl.debian.org/debian-cd/8.1.0 ... 6-CD-1.iso
-
- Beiträge: 25
- Registriert: 06.06.2015 16:50:17
Re: .sh script beim Systemstart starten
ja, es ist Wheezy
Welche dieser 3 Links ist der Beste um eine VM-Ware damit einzurichten.
Dann werde ich das einfach mal machen.
Es kommt mir da nicht auf einen Tag oder ne Woche drauf an. Es soll dann einfach dauerhaft gut laufen und ich möchte was dabei gelernt haben.
Welche dieser 3 Links ist der Beste um eine VM-Ware damit einzurichten.
Dann werde ich das einfach mal machen.
Es kommt mir da nicht auf einen Tag oder ne Woche drauf an. Es soll dann einfach dauerhaft gut laufen und ich möchte was dabei gelernt haben.
mfg
Gelbervogel
Gelbervogel
Re: .sh script beim Systemstart starten
Der letzte ist der iso-Installer. Aber schau Dir alle 3 Links an.... nicht nur öffnen, lesen....Gelbervogel hat geschrieben: Welche dieser 3 Links ist der Beste um eine VM-Ware damit einzurichten.
![Wink :wink:](./images/smilies/icon_wink.gif)