Linux: Egna script vid uppstart?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
ToB
Inlägg: 678
Blev medlem: 22 februari 2004, 10:32:58
Skype: tobias_bjork
Ort: Sollentuna

Re: Linux: Egna script vid uppstart?

Inlägg av ToB »

$1 är väl något av argumenten på kommandoraden (första argumentet?).
danwi
Inlägg: 377
Blev medlem: 16 oktober 2008, 17:00:59
Ort: Linköping

Re: Linux: Egna script vid uppstart?

Inlägg av danwi »

Nerre skrev:I Debian-baserade system så gör man INTE detta manuellt, utan det sköts med update-rc.d. Lägger man in dem manuellt är det som gjort för missar och slarvfel som ger konstiga fel.
Helt rätt, så görs det visst i Debian och då är det ju vettigt att göra på det sättet. Det finns liknande metoder i CentOS och OpenSuSE men jag har hittills aldrig råkat ut för några "konstiga fel" med startscripten jag gjort själv. Min Linux-uppfostran började redan förra årtusendet och då fanns knappt några hjälpmedel alls utom emacs... Men ska man göra det på rätt sätt så är det ju synnerligen lämpligt att göra det på rätt sätt :)
ToB skrev:$1 är väl något av argumenten på kommandoraden (första argumentet?).
$1 är första argumentet till scriptet ($2 - $9 är efterföljande). Dessutom är $0 scriptets namn (som det anropats med), $* är alla argument, osv. Se t.ex. den här länken. Det är alltså det jag avser med kommandon i mitt tidigare inlägg, att anropa scriptet med ett argument ("start", "stop" eller "status") som sedan återfinns i $1.

Jag håller med Nerre om att start-stop-daemon är rätt väg att gå om man startar en tjänst som ska vara igång hela tiden (och inte bara köras just då för att sedan terminera).
Nerre
Inlägg: 26696
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Linux: Egna script vid uppstart?

Inlägg av Nerre »

JimmyAndersson skrev:1) Hur fungerar "$remote_fs" och "$local_fs" egentligen? Jag förstår inte förklaringen jag citerade i mitt förra inlägg.
Som jag förstått det är det vissa script som anger "provides" som motsvarar de där grejerna som anges i "required".

När du kör update-rc.d så går den igenom alla script som ligger i init.d och bygger en slags "beroendeträd" baserad på de där "provides" och "required"-grejerna. Sen baserat på det trädet så sätter det de där sekvensnumren (Sxx och Kxx). Man slipper alltså som användare tänka på vad det är för sekvensnummer.

Med det gamla systemet så fick man problem om man ville köra någon mellan S11 och S12 eftersom alla paket installerade sina script med fasta sekvensnummer.
Användarvisningsbild
JimmyAndersson
Inlägg: 26308
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: Linux: Egna script vid uppstart?

Inlägg av JimmyAndersson »

Aha! :)

Tack för all input, det blev en väldigt givande tråd! :tumupp: :tumupp:


--

Sidospår:
Jag har sett trådar där man frågat hur man läser t.ex 1wire-enheter via t.ex php
utan att använda t.ex PHP's "exec" eller spara tokofta till en fil och läsa från den.
OWFS är ju ett virtuellt filsystem så det är väldigt enkelt att lösa det. :)
Vet inte riktigt varför jag inte tänkt på det här innan....

Provade just med lite slarvskriven php-kod:

Kod: Markera allt

<?php

$mainpath ="/mnt/1wire";
$tempsensor1 = "28.FE5E70020000";
$usb-master = "81.55DC2E000000"; //Används inte i den här koden.
$typ = "temperature"; //Både namnet på den virtuella filen och typen av data som den anslutna sensorn ger.

//Baka ihop...
$onewire1 = $mainpath."/".$tempsensor1."/".$typ;

//Läs filen till en array. (Råkade bara bli array den här gången för den koden var längst fram i hjärnan..)
$array_fil1 = file($onewire1, FILE_IGNORE_NEW_LINES);

//Från array till en vanlig variabel..
$fil1 = $array_fil1[0];

echo "Sensor $tempsensor1 : $fil1 grader Celsius.";
?>
Allt kan göras betydligt snyggare. Jag skrev bara koden för att testa principen. :)
Med lite felhantering, bättre val än "file()" och rätt rättigheter till "/mnt/1wire" så borde väl det här vara en bra lösning?
(Man kan ju göra koden till en funktion i en separat php-fil som inkluderas där man vill se info från 1wire-enheterna.)
Skriv svar