Gå til innhold

"bat fil"


Anbefalte innlegg

Trenger å få startet trådløsnettet mitt. i dag må jeg starte en terminal og kjøre et script. er det noen mulighet for å lag en ".bat" fil i linux for å få kjørt komandoen? kunne også tenkt meg å få startet denne under oppstart. er ACX100 driveren fra sourceforge det er snakk om. bruker et d-link dwl650+ i min Compaq Evo N800V og det funker jo glimrende! utenom at jeg må start kortet manuelt hver gang da....

Lenke til kommentar
Videoannonse
Annonse
Bruk et RC-script.

Hvor finner jeg dette i Suse 9.0 da? finner bare RC men ikke no script....

I GNU/Linux avgjøres det om en fil er kjørbar etter hva som er definert som kjørbart på systemet - ikke etternavnet (som i windows). Du kan gjøre alle filer kjørbare i grunn (om det virker får være en annen sak...). Til dette kan du bruke kommandoen chmod. Eksempel på bruk er:

 

chmod u+x etskript

dette vil sette en "execute-bit" på filen etskript slik at eieren av filen (u - user) kan kjøre filen. Dette kan du gjøre ved å sette på prefikset ./ eller sh, f.eks ./etskript eller sh etskript.

 

Men nå over til rc-skriptene:

 

Etter at kjernen er "pakket ut" (den er komprimert), startes init. Init er alle prosessers mor (bare sjekk outputen til ps -ax - init har pid-nummer 1) og kan ikke drepes så sant Linux(-kjernen) er i live. Init har som ansvar å starte andre prosesser. Det betyr at alle andre prossesser er "barn" til init (hvor init er forelderprosessen). Hvilke programmer, hvordan programmene skal startes og hva som skjer når programmene dør ligger i egne oppstartsskript. Disse kjøres hver gang du starter maskinen. Det finnes flere skript, og hvilke av dem som kjøres avgjøres av hvilket kjørenivå systemet er i. F.eks så pleier kjørenivå 1 å være enbrukermodus. Dette kan gjøres med kommandoen init 1. Dette er veldig nyttig i vedlikeholdssammenhenger og feisøking (...situasjoner hvor du ønsker at så få prosesser som mulig skal kjøre i bakgrunnen). Videre er init 0 vanligvis det samme som å stanse systemet, mens init 6 er å reboote. Init-prosessen bestemmer også hva som skal skje ved en "three finger salute" (i enkelte kretser kjent som ctrl-alt-delete), og at login-manageren, f.eks gdm skal respawne (startes på nytt) når den dør...

 

Hvor disse rc-skriptene ligger er litt avhengig av hvilken distrubsjon du bruker (i ditt tilfelle, SuSE), men ifølge en standard kalt FHS skal init-skriptene ligge et sted i /etc (fordi skriptene er "lokale innstillinger til verten"). Det burde være ganske lett å finne dem frem; katalogen burde være noe ala /etc/rc.d. Under denne katalogen vil det ligge flere skript - gjerne med et nummer etter for å indikere ved hvilken runlevel (kjørenivå) skriptet kjøres. Her kan ikke jeg hjelpe deg videre fordi jeg bruker Slackware, men det burde være ganske åpenlyst hvis du tar deg tid til å lese igjennom filene. Basicen er at du skal legge inn navnet på ditt skript i et av rc-skriptene. Husk bare at det må være et rc-skript som tilsvarer den runlevelen systemet ditt vanligvis er i etter oppstart (husk at du gjerne kan legge den i et rc-skript som tilsvarer en lavere runlevel, fordi disse alltid kjøres uansett).

 

Når du har funnet riktig rc-fil legger du inn dette:

 

echo "Opsett av trådløst nettverk..."
exec /root/wireless-skript # Den ligger der for sikkerhets skyld :-d

 

echo gjør ikke annet enn å sende ekko til systemet. I dette tilfellet er ekkoet en tekststreng som skrives ut på standard utdata.

Lenke til kommentar

Du trenger vel ikke å redigere en fil, bare lag en selv. Er nok slik at inenfor hvert runlevel (rcx.d) så kjører den fra laveste K til høyeste (altså K1 så K2 osv). Så du kan ta en titt på noen av de andre scriptene der, og om de bare inneholder vanlige komandoer så lager du bare en ny tekstfil med den komandoen du vil ha kjørt og kaller den f.eks K70wireless.

Lenke til kommentar
da har jeg funnet rc.d/

under der ligger rcx.d/ fra 0-6

under dette ligger div filer, f.eks. K16network

er det da denne jeg skal redigere?

kan jo ikke redigere en katalog som rc2.d er...

ookay... De "diverse filene" du snakker om (K16network) er sannsynligvis tilleggsfiler som kjøres fra et hovedskript for en bestemt runlevel. Det er ikke usannsynlig av hovedskriptene ligger i /etc/rc.d/, mens underskriptene ligger i /etc/rc.d/rcx.d/ hvor x tilsvarer runlevelen. Fra dette "hovedskriptet" kjøres muligens samtlige filer i den tilsvarende ../rcx.d/-katalogen. Dette kan du sjekke enkelt ved å lete etter referanser i skriptene... Finner du f.eks noen referanse til K16network? Hvis du er sikker på at dette skriptet kjøres kan du trygt dytte inn den skriptbolken du ønsker å få kjørt automatisk under oppstarten. En alternativ løsning som distrubutørene muligens har gjort er at "Hovedskriptene" inneholder direkte referanser til skript i /etc/rc.d/rcx.d. I så fall du:

 

a)

legge inn skriptet ditt direkte i "hovedskriptet"

 

b) modifisere hovedskriptet slik at det kjører skriptet ditt, som du har lagt i /etc/rcx.d/... Altså ikke den beste løsningen hvis du føler deg ustø i Linux.

 

edit: Hvis distromakerne har gjort oppstartsskriptene nogelunde fleksible kan du følge p@arm@nns beskrivele (evt. se lengre ned)

 

Verre blir at SuSE sannsynligvis har egne nettverksskript som kjøres for å sette opp alle nettverksgrensesnitt ("network interfaces"). Desverre, hvis det er slik som det var i Slackware, var disse kun myntet på kablede nettverk, med navn på grensesnitt som ethx, mens den nettverksenheten du ønsker å sette opp heter wlanx. I tillegg er de nok heller ikke satt opp til å legge inn innstilliger til iwconfig, som nettverksmodus, kanal/frekvens, WEP/WPA und zu weiter... For å si det mildt blir det en "pain in the ass" å redigere disse til å passe til dine formål (og en distro som SuSE har garantert rotete oppstartsskript pga. alle de "brukervennlige features'ene" - en grunn til å gå for slack .... :-D ) hvis du ikke er kjent med dem.

 

Mitt forslag/den letteste løsningen: Finn det "siste" skriptet som kjøres! Det er sannsynligvis det skriptet som starter kdm eller gdm. I dette skriptet legger du inn de linjene du ønsker før gdm/kdm kjøres (det er den grafiske versjonen av login), sånn bare for sikkerhetsskyld. Hvis du legger linjene i skriptet ditt veldig tidlig i oppstarten risikerer du at nettverksskriptet til SuSE roter/"overskriver" oppsettet ditt.

Endret av Manuel
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...