Toon posts:

Software starten tijdens/na booten Linux

Pagina: 1
Acties:
  • 226 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Mijn vraag is simpel:

Wat moet ik doen om automatisch software the starten tijdens of na het booten van Linux (SuSE 7.0) zodat de software loopt zonder dat je hoeft in te loggen (en manueel) te starten. De software die ik wil starten: FlexLM Licence Manager en natuurlijk de dnetc client.

  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 19-08 17:40
Daarvoor moet je aan 't eind van de inittab een regeltje plaatsen.
voorbeeld van een regeltje uit mijn /etc/inittab
code:
1
IS:35:once:9~gijs/bin/uptime_internet

IS is een naam die ik aan 't commando heb gegeven (2 characters, unieke naam!!)
35 geeft aan dat 'ie dat moet uitvoeren in runlevel 3 & 5 (beide zijn runlevels met netwerk_support)
once lijkt me duidelijk
en dan 't script wat je wilt runnen (in dit geval een script dat in geschreven heb om te loggen wat de pingtijden zijn naar de eerste router (soms >20 sec :())

Tussen : & ~ gooit 'ie telkens een '9'
hoogst irritant :(
die '9' moet er dus tussen uit.

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


Verwijderd

Topicstarter
ok, effe gekeken in /etc/inittab. Het is me nog niet helemaal duidelijk (Linux newbie). Kun je de naam (IS in jouw geval) gewoon vrij kiezen?

Stel ik wil de dnetc client (in /bin/dpc/ opstarten in run-level 3, dan wordt dat dus:

DPC:3: once:/bin/dpc/dnetc :?

  • pjottum
  • Registratie: Mei 2000
  • Laatst online: 22:56

pjottum

¯\_(ツ)_/¯

argh.

in je inittab ?
Nee, check even je etc dir naar bijvoorbeeld /etc/rc.d/init.d/ en daarin vind je al je bootscripts (althans.. bij redhet, suse weet ik niet waar het staat, maar zal op een soortgelijke manier werken).
Dan fabriek je zelf een scriptje met naar goed voorbeeld zoals je die daar vindt, linkt dat als S##naam in rc2.d/ en je linkt het K##naam in bijvoorbeeld rc0.d/ waarbij 0 en 2 uiteraard de runlevels zijn vanaf waar het moet draaien.

Voorbeeldje:
<bedenk>
#!/bin/sh
case $1 in
start) echo "Start progsel"
/bin/programma/wat/moet/draaien/starten
stop) echo "Stop progsel"
/bin/programma/wat/moet/draaien/stoppen
*) echo "Aanroepen met stop of start"

</bedenk>
Als je het goed doet kan je het dan ook wel weer terugvinden in je runlevel editor.
Die K## en S## geven aan in welke volgorde die scripts gerunt moeten worden! :) En zo was er weer een blije wouter..

I have usernames older than you.


Verwijderd

Ja de /etc/init.d is de gewezen plek om applicaties te starten. Maak een {start|stop} shell script, dump die in de init.d, synlink deze naar een van de /etc/rc*.d directories, en starten maar.

Verwijderd

Topicstarter
Ok, bedankt. Hier ga ik even mee aan de slag. Als ik er niet uit kom meld ik me weer.

Verwijderd

een recente dnetc client ondersteunt dit gedoe zelf: commando dnetc -install zorgt ervoor dat ie automatisch laadt.

Verwijderd

Topicstarter
Ok, very nice. Alleen: ik moet ook nog een software licence manager starten, dus wil ik het ook met het handje proberen. Is bovendien goed voor m'n Linux kennis.

Overigens heb ik in de init.d directory al een skeleton script gevonden die je als voorbeeld kan gebruiken.

Verwijderd

je kan het ook achter een run level plakken dat doe ik altijd omdat dat het logish is voor mijn distro (Slack...the legend>:))..

in rc.M zet ik altijd onder aan:

if [ -x /etc/rc.d/rc.GEEF MAAR EEN NAAM ] then . /etc/rc.d/rc.NAAM DIE JE HEBT BEDACHT
fi

dan maak je dat filetje in je rc.d dir bv rc.firewall daar kan je dan lekker alles inzetten wat je maar wil en wil je eentje voor samba ofzo dan noem je hem rc.samba
zou hou je het ook nog eens overzichtelijk vind ik :)

Verwijderd

/etc/rcX.d

X moet vervangen worden door het runlevel!

>:)

Verwijderd

lrwxrwxrwx 1 root root 4 Jul 12 2000 rc.0 -> rc.6*
-rwxr-xr-x 1 root root 980 Oct 3 1999 rc.4*
-rwxr-xr-x 1 root root 2492 Sep 11 1999 rc.6*
-rwxr-xr-x 1 root root 1813 Sep 11 1999 rc.K*
-rwxr-xr-x 1 root root 5124 Oct 11 16:49 rc.M*
-rwxr-xr-x 1 root root 5118 Oct 14 1999 rc.M~*
-rwxr-xr-x 1 root root 6240 Sep 11 1999 rc.S*
-rwxr-xr-x 1 root root 943 Aug 19 1999 rc.atalk*
-

ja om een M >:)

Verwijderd

Topicstarter
Het is voor mekaar. Een script gemaakt (etc/rc.d/init.d/dnetc) en die als laatste laten opstarten (en als eerste laten killen) in run level 3. Je ziet de dnetc client output nog heel even voor hij overgaat op X en het logon scherm komt. Als je met ps kijkt staat dnetc er mooi tussen. De }:O kan dus rc5 blokjes grazen. Nu nog de FlexLM licence manager.

Alleen hetvolgende. De output van dnetc is nu onzichtbaar (ik genereer nu een rc5.log) omdat Linux XWindows opstart. Kun je geen venstertje hebben waar de text die je bij het booten ziet zichtbaar blijft?

  • Valium
  • Registratie: Oktober 1999
  • Laatst online: 01:55

Valium

- rustig maar -

Als eerste laten killen doe je niet in runlevel 3, maar in runlevel 0, 1 en 6
Dat zijn respectievelijk de HALT, DEBUG en REBOOT runlevels.

Om de output te bekijken kun je dit commando draaien in een schermpje:
tail -f /home/blabla/jouwlogfile.log

Verwijderd

Als je iets alleen in runlevel 3 draait moet je het ook killen in runlevel 2. Dus daar moet een KXXblabla komen te staan. Anders gaat het fout als je even een runlevel lager wilt (init 2)

  • pjottum
  • Registratie: Mei 2000
  • Laatst online: 22:56

pjottum

¯\_(ツ)_/¯

Ja, daarom moet je dus een K of S link in _elk_ runlevel naar jouw scriptje hebben. Dan is altijd duidelijk wat wanneer draait. (of beter: zou moeten draaien :))

I have usernames older than you.

Pagina: 1