User since
2003-08-04
5873
Artikel
ModeratorIn
Was ist die übliche Methode, als User Programme zu starten, die beim Hochfahren des Rechners laufen sollen?
Oder gibt es die nicht?
Als root würde ich zu /etc/init.de/... greifen, als User beim Start jeder Shell zu .bashrc oder .profile, aber wohin kommen Programme, die ich nur einmal pro Rechnerstart ausführen will?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-08-11
457
Artikel
BenutzerIn
Ich weisz dass man als Zeitangabe fruer Cron-Jobs '@reboot' angeben kann, der Job wuerde aber IMO nur einmal ausgefuehrt werden, muesste also jedes mal neu eingestellt werden.
Cronjobs muessen da natuerlich auch fuer die gewoehnlichen User erlaubt sein.
Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
User since
2005-04-13
625
Artikel
BenutzerIn
Wenn es beim hochfahren des XServers ist, kann man das in die ~/.xinitrc eintragen. Dann startet das Programm bei jedem hochfahren des XServers.
Wenn das Programm in $PATH ist kann das so aussehen:
grellm&
#& ist wichtig, sonst wäre der X Prozess mit gkrellm blockiert.
#So wird es im Hintergrund ausgeführt!
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de
Hab dazu mal das geschrieben:
Befehle beim Start von Linux automatisch ausführen (SuSE)
Beim Systemstart wird zunächst der Bootmanager (z.B. grub) gestartet.
Danach wird das Script /etc/init.d/boot ausgeführt.
Befehle, die in diesem Stadium automatisch ausgeführt werden sollen, kann man als root in die Datei
/etc/init.d/boot.local
eintragen.
Danach durchläuft das System mehrere sogenannte Runlevel, in denen von dem Script
/etc/init.d/rc
verschiedene Dienste gestartet werden. Wenn das System Runlevel 3 erreicht hat, steht der Textmodus zur Verfügung und man kann sich einloggen (-> s.o. "Im Textmodus starten").
Um in den Runleveln eigene Scripte zu starten, geht man folgendermaßen vor (Achtung ! Das ist etwas für fortgeschrittene Anwender ! Schlimmstenfalls kann es passieren, daß das System nicht mehr startet !):
Man erstellt als root ein eigenes Script (-> s.o. "Eigene Scripte verwenden"), macht es ausführbar (chmod +x script) und kopiert es nach
/etc/init.d/.
Dann startet man YaST2. Unter "System" findet man einen Runlevel-Editor. Unter Runlevel-Eigenschaften werden die Scripte von /etc/init.d/ angezeigt. Man markiert das eigene Script und klickt die Runlevel an, in denen es ausgeführt werden soll.
YaST2 erstellt dann etwa in /etc/init.d/rc.3.d einen Link auf das Script.
Dieser sieht etwa so aus:
@S16script
"S" steht dabei für "start", "K" für "kill" (stop).
Die Zahl gibt an, in welcher Reihenfolge die Dienste gestartet werden. Durch Umbenennen des Links, etwa zu @S05script, kann man diese Reihenfolge verändern.
User since
2004-03-01
23
Artikel
BenutzerIn
Quote"S" steht dabei für "start", "K" für "kill" (stop).
achte drauf das du kill net allzu oft mit STOP gleichsetzt.... das wäre ein faux pas
QuoteIf You don't know what it does, why do you put it in your code
print +(a=>b=>c=>d=>e=>f=>g=>h=>i=>j=>k=>l=>m=>n=>o=>p=>q=>r=>s=>t=>u=>v=>w=>x=>y=>z=>" ")
[9=>20=>18=>19=>-1=>0=>13=>14=>19=>7=>4=>17=>-1=>15=>4=>17=>11=>-1=>7=>0=>2=>10=>4=>17];
User since
2003-08-21
2614
Artikel
ModeratorIn
Ich habe das Problem vor einiger Zeit folgendermaßen gelöst:
/etc/init.d/scriptname:
start () {
if [ "`id -u`" -ne "`id -u pepe`" ]
then
ebegin "Starting netsound"
exec sudo -u pepe env - HOME=~pepe sh -c ". /etc/init.d/scriptname; start"
fi
# An dieser Stelle kann die unprivilegierte Arbeit gemacht werden
}
Das ist jetzt allerdings ein (Ausschnitt aus einem) Gentoo-Init-Script. Du musst es wahrscheinlich noch an Deine Distribution anpassen.
Edit: Mist, hab ganz uebersehen, dass dieser Thread schon so alt ist\n\n
<!--EDIT|betterworld|1126865417-->
User since
2005-04-13
625
Artikel
BenutzerIn
kommt vor ^^
es gibt in /etc/init.d/ das Beispielscript Skelleton, das als "Anleitung" der distris dienen soll
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de