• Reset your password

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log in
Hjem
Linuxin 2025

Breadcrumb

  • Hjem
  • forums
  • exekvere en kommando fra boot på DM500HD - busybox [SOLVED]

Hvad kan du med 100% sikkerhed sige, at du har stemt?

Valgmuligheder
Af peque | 08.08.2010 13:22

exekvere en kommando fra boot på DM500HD - busybox [SOLVED]

Hjælp generelt

hey gutter.



Jeg roder med et problem da jeg gerne vil have kørt en kommando på min Dreambox ( som kører busybox) allerede ved opstarten.



jeg har nu prøvet flere metoder - men kan ikke få det til at blive afviklet under opstarten.

Har lavet et script:

/var/etc/init.d/start.sh

kører jeg dette direkte - virker alting. Men skal hen og logge ind på boksen for derefter at aktivere kommandoen - det burde da vel være til at fungere under boot.



Normalt havde jeg bare lagt kommandoen in i /etc/rc.local men den findes ikke - hvordan skal jeg så gøre dette

  • Log in to post comments

Kommentarer31

14 år 9 måneder siden

Permalink

Indsendt af marlar den 8. august 2010 kl. 14:25

Permalink

Jeg kan desværre ikke

Jeg kan desværre ikke hjælpe dig, men jeg er nysgerrig og vil gerne vide hvordan du bruger din Dreambox. Jeg kan se så meget fra Google at det er en TV-boks der kører Linux, men hvad "ekstra" kan den som alm. TV-bokse ikke kan?



PS. Synes at alt der kører Linux er spændende :)

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af carlo den 8. august 2010 kl. 14:25

Permalink

#0 du kan ikke bruge noget a

#0 du kan ikke bruge noget a la /etc/init.d og så kalde fra /etc/rc?.d (? = S, 0 .. 6) ?

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 8. august 2010 kl. 15:22

In reply to #0 du kan ikke bruge noget a by carlo

Permalink

Jeg har lavet mit script

Jeg har lavet mit script (kommando) der skal køres i en fil kaldet /var/etc/init.d/start

og derefter lavet symlinks som skal gå i rc0-6.d.

Men efter en reboot ligger de stadigvæk - men ikke bliver kørt ???

Og det er reelt underligt - for kører jeg filen i hånden - kører det uden problemer.

Der må simpelthen være noget specielt omkring at tilføje denne på en måde

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af stevie-wonder den 8. august 2010 kl. 16:34

Permalink

Re: exekvere en kommando fra boot på DM500HD - busybox

Hej



Du mangler lige og opdatere din deamon.

Mangler lige at skrive en enkelt linie i din terminal.



update-rc.d script navn defaults



Så skal du lige genstarte og så starter dit script ved start.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 8. august 2010 kl. 19:37

Permalink

Normalt er denne kommando da

Normalt er denne kommando da nok . som dne har accepteret - lavet sine links og sagt det er OK - men stadig ikke virker :



update-rc.d scripts defaults



Så laver den da også sine symlinks - så hvis jeg skal skrive script/navn ?? så må jeg vel have lavet noget forkert - kan dog ikke forstå at den accepterer og siger OK - hvis jeg mangler en parameter

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af stevie-wonder den 8. august 2010 kl. 21:28

Permalink

Re: Re: exekvere en kommando fra boot på DM500HD - busybox

Det script du har lavet har du lagt under /etc/init.d/



Det har du givet et navn fx start, som jeg tror du har kaldt dit script.



update-rc.d start defaults



Det burde nu virke



Ellers skal vi have kørt /etc/init.d/start start ved opstart på en anden måde.



Har du forresten husket og gøre din fil eksekverbar?



chmod +x start

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 9. august 2010 kl. 07:55

Permalink

update-rc.d start

update-rc.d start defaults



Det burde virke - i min forstand og filen er exekverbar - så alt er i den fineste orden.

kører jeg manuelt /etc/init.d/start - kører det perfekt - men jkeg kan ikke få det til at starte automatisk - er nødt til at logge ind på boksen og køre det hver gang!


  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af cb400f den 9. august 2010 kl. 08:45

Permalink

en TV-boks der kører Linux,

en TV-boks der kører Linux, men hvad "ekstra" kan den som alm. TV-bokse ikke kan?



PS. Synes at alt der kører Linux er spændende :)




Mon ikke de fleste "alm. tv-bokse" kører Busybox/Linux? ;-)



Jeg tror forskellige devices der kører Linux er mere udbredte end du tror, mit Philips tv gør f.eks. også - og det formoder jeg at stort set alle deres modeller gør.



Firmaerne har ofte så travlt med at smide busybox på deres devices at de glemmer at læse GPL først ;-)

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 9. august 2010 kl. 08:47

In reply to en TV-boks der kører Linux, by cb400f

Permalink

Så vidt min opfattelse er -

Så vidt min opfattelse er - kører alle recievere Linux -. probleemt er bare som tidligere - det er ikke alle der overholder GPL reglerne -. og Viasat bla har været i retten omkring dette.



Men tror de fleste devices reelt kører linux.



Men der er ingen der kan fortælle mig hvorfor jeg ikke kan aktivere det script så det kører automatisk fra starten - da jeg ville mene at det burde fungere som jeg nu har gjort - men alligevel ikke.



Skal manualt køre det script før end det virker

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af cb400f den 9. august 2010 kl. 08:55

Permalink

Ved du om busybox læner sig

Ved du om busybox læner sig op ad en "normal" distro? Debian? RH? SUSE?



Der burde vel være en fil i /etc/init.d/ til at køre egne kommandoer under boot. På suse ville det være boot.local eller after.local.


  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 9. august 2010 kl. 09:31

Permalink

må ærlig indrømme - jeg

må ærlig indrømme - jeg ved ikke hvilken en der ligger mest op af. Men nej der er ikke en local fil der klarer dette - efter hvad jeg kan se.

Under inet.d ligger kun de almindelige scripts som er llinket til under diverse rc[0-6].d biblioteker.

Men kan ikke se nogen almindelig fil der skulle kunne håndtere det - da alle der ligger derinde er diverse daemons der starter almindeligt.


  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af stevie-wonder den 9. august 2010 kl. 10:29

Permalink

Re: exekvere en kommando fra boot på DM500HD - busybox

Nu har jeg selv prøvet og lave et lille script og få det til at køre. Prøvede bare med at starte nautilus ved opstart.

Det virkede heller ikke. Så jeg prøvede at sætte mit script til at starte 20 sekunder efter opstart, for at se om der var noget som forstyrrede mit script.



Det virkede for mig.



#!/bin/bash



sleep 20 && nautilus



Håber det hjælper med dit problem.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 9. august 2010 kl. 10:41

Permalink

Nope - prøvede at sætte

Nope - prøvede at sætte sleep 20 ind men nej - starter stadigvæk ikke



Så er totalt på herens mark - syntes det er ufatteligt det ikke kan køre

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af stevie-wonder den 9. august 2010 kl. 10:49

Permalink

Re: exekvere en kommando fra boot på DM500HD - busybox

Det da underligt. Jeg vil prøve og se på det senere i dag. Det skal jo kunne lade sig gøre.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 9. august 2010 kl. 10:59

Permalink

Hvordan har du præcist

Hvordan har du præcist gjort ?



Dette burde virke med et script der hedder "testmig"

(Jeg kan ikke huske hvad "20" gør, men må kunne findes i man pagen)



1) Kopier filen til init.d hvis du ikke har gjort det.

cp testmig /etc/init.d/testmig



2) Sæt rettigheder på filen

chmod 755 /etc/init.d/testmig



3) Opdater init scripts og fortæl hvilke runlevels scriptet skal køre og stoppe i.

BEMÆRK PUNKTUM !!

update-rc.d testmig start 20 2 3 4 5 . stop 20 0 1 6 .

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 9. august 2010 kl. 20:47

Permalink

hermed gjort - men med samme

hermed gjort - men med samme resultat.

Altså det med testing og opdatere rc.d - men samme resultat - der vil ikke starte af sig selv under opstarten. Men det er nøjagtigt som jeg har gjort tidligere.



Jeg er fra Arch vant /etc/rc.local men sådanne fil findes ikke og de andre muligheder ligger der heller ikke.

Kan bare ikke rigtig se hvad der reelt skulle kunne gøre dette.



Mit script er at starte en SSH tunnel således at jeg kan oprette forbindelse til min DB.

det ser således ud:



#!/bin/sh

#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

dbclient -T -i ~/.ssh/mykey -L 2345:localhost:22 root@ServerIP



(har endda prøvet med og uden & efter linien



Kan da ikke forstå at dette ikke fungerer da man burde kunne afvikle dette på en enkelt måde!



Per


  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 10. august 2010 kl. 15:36

Permalink

Kan du ikke prøve at lave

Kan du ikke prøve at lave et andet script der skriver hej ned i en fil eller noget meget simpelt, så du er sikker på at det virker?



Umiddelbart så lugter det lidt af, at den laver en fejl ved eksekvering af scriptet ved boot af den ene eller anden årsag.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 10. august 2010 kl. 15:37

Permalink

peger ~/.ssh/myke til

peger ~/.ssh/myke til /root/.ssh/mykey ??

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af marlar den 10. august 2010 kl. 16:01

Permalink

Bare et skud i tågen, men:

Bare et skud i tågen, men: kan du ikke snyde lidt og putte en linje ind i eksisterende script der bliver kørt ved opstart, og derfra kalde dit eget script?

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 10. august 2010 kl. 16:33

Permalink

Nu har jeg leget et par

Nu har jeg leget et par gange og sat følgende ind i scriptet.



#!/bin/sh

#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

echo "HELLO" >> /tmp/test.txt

dbclient -T -i ~/.ssh/mykey -L 2345:localhost:22 root@ServerIP



og den kommer ind - så skriptet bliver kaldt og køres - så det er selve linien / måden det er skrevet på der er forkert i min dbclient linie.

hvis jeg kører det manuelt - afslutter den ikke - så hvordan kan dette skrive anderledes - da jeg normalt bare ville kalde kommandoen fra rc.local - men busybox på denne syntes at være ret begrænset


  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af marlar den 10. august 2010 kl. 19:56

Permalink

#20:
Jeg kommer til at

#20:



Jeg kommer til at tænke på at jeg havde/har et problem der minder meget om det:



http://www.linuxin.dk/node/16898



Når jeg kører scriptet manuelt, så virker det helt perfekt, men kører det under opstarten så fejler det af grunde jeg aldrig blev klar over. Måtte give op til sidst.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 11. august 2010 kl. 08:38

Permalink

Peger ~/.ssh/mykey til

Peger ~/.ssh/mykey til /root/.ssh/mykey ?



Jeg tænker at hvis du kører scriptet når detvirker som en normal bruger vil ~ pege til /home/myuser, så har du muligvis en ugyldig sti da den sikkert kører som root ved boot er dermed kigger i /root i stedet.



Gav det mening? :)

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 12. august 2010 kl. 07:16

Permalink

Hey IBM.
Scriptet bliver

Hey IBM.

Scriptet bliver kørt som root - og brugeren er root.

Der er som default ikke andre brugere og normalt ville man slet ikke kigge ind på OS på en Dreambox - da den reelt kun bruges til at glo TV på.



Alting kører i baggrunden som root - og jo nøglen ligger det rigtige sted! Så det kan desværre ikke være der problemet ligger

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af stevie-wonder den 12. august 2010 kl. 09:13

Permalink

Re: exekvere en kommando fra boot på DM500HD - busybox

Det er virkelig noget underligt noget. Mangler der noget i selve scriptet der får hans daemon til at acceptere filen i startop.



http://www.linux.com/archive/feed/46892



Jeg fandt det her link og har kigget hans script igennem. Her starter han sit script med



. /etc/init.d/functions



Har ikke selv prøvet det, da jeg ikke har haft tid. Håber der er nogen som får det til at virke.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 12. august 2010 kl. 15:18

Permalink

Hey Gutter nu er jeg nået

Hey Gutter nu er jeg nået så langt her:



#!/bin/sh

#

# /etc/init.d/sshtunnel: start or stop SSH tunnel.

#

. /etc/default/sshtunnel



case "$1" in

start)

echo -n "Starting up SSHtunnel: sshtd"

dbclient -T -i ~/.ssh/mykey -L 2345:localhost:22 $SERVERIP || exit 0

echo "."

;;

stop)

echo -n "Shutting down SSHtunnel: sshtd"

killall dbclient

echo "."

;;

*)

echo "Usage: /etc/init.d/sshtunnel {start|stop}"

exit 1

;;

esac

exit 0



Fungerer i realiteten OK - MEN jeg skal uanset hvad kalde scriptet manuelt. I /etc/default/sshtunnel ligger hvilken host den skal udføre kommandoen på.

Jeg kan starte og stoppe min daemon med mit script. Dog imens den kører står den sådanne:



# /etc/init.d/ssh_tunnels start

Starting up SSHtunnel: sshtd



hvilket nok har nået at gøre med hvordan linien exekveres - hvordan kan jeg smide den i baggrunden, alt selve kommando linien ?? således at den forbliver aktiv og exitter. Jeg har sat & ind og prøvet med || exit 0 , men hvordan kan man få dette til at holde den SSHtunnel oppe, så jeg kan logge ind på boksen

Uanset hvad - så har jeg disse muligheder igennem ssh ?



# ssh -h

Dropbear client v0.48

Usage: ssh [options] [user@]host

Options are:

-p

-l

-t Allocate a pty

-T Don't allocate a pty

-i (multiple allowed)

-L Local port forwarding

-g Allow remote hosts to connect to forwarded ports

-R Remote port forwarding





Så har nogle et rigtig godt udgangspunkt videre - for lige nu er jeg lidt blank overfor den ikke vil køre

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 13. august 2010 kl. 08:27

Permalink

Du kan prøve med nohup til

Du kan prøve med nohup til at ligge den i baggrunden måske ?



" nohup - run a command immune to hangups, with output to a non-tty "

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 13. august 2010 kl. 09:40

Permalink

Hey Ibm.
Jeg har tjekket og

Hey Ibm.

Jeg har tjekket og set overalt.

Som jeg lige kan se er nohup ikke en del af busybox på disse dreamboxe ???



root@dm500hd:~# uname -r

2.6.12-5.1-brcmstb



Og kender slet ikke kommandoen i kernen, der er ingen man-sider help.

Så hmmmmm det er da imponerende det kan være så svært at køre et script

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af marlar den 13. august 2010 kl. 09:48

Permalink

På min NAS der også kører

På min NAS der også kører busybox, bliver baggrundsprogrammer kørende efter hangup.

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af lbm den 13. august 2010 kl. 10:43

Permalink

OK, det var også et wild

OK, det var også et wild shot. :)

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 14. august 2010 kl. 10:57

Permalink

@ibm: hvordan ville du lave

@ibm:

hvordan ville du lave det script med nohup - bare for sjov - da jeg har opdateret min kernel og nu har nohup med - så er spørgsmålet lige at få det tilrettet korrekt.



Så ville da gerne høre et bud med nohup

Netop da jeg har nu fået den til at kalde scriptet men for denne udmelding i scriptet - selvom i nohup smider den følgende kommentar:



Host 'xxx.xxx.xxx.xxx' is not in the trusted hosts file.

(fingerprint md5 8d:6a:da:40:80:82:aa:a1:ff:4d:5a:71:69:36:a3:91)

Do you want to continue connecting? (y/n) /usr/bin/dbclient: connection to root@xxx.xxx.xxx.xxx exited: Didn't validate host key



Så ergo må den ikke kunne finde min fil der giver den adgang til at kende hosten. Altså hvilken kommando er det så ? hvordan kommer jeg videre - da den bruger ikke kender known hosts

  • Log in to post comments

14 år 9 måneder siden

Permalink

Indsendt af peque den 14. august 2010 kl. 20:46

Permalink

Nu er jeg nået så langt

Nu er jeg nået så langt her:

/etc/init.d/sshtunnel indeholder:



nohup /etc/sshtunnel &



det køres og giver output i nohup.out om den accepterer nøglen osv.

Derefter indeholder scriptet /etc/sshtunnel følgende:



/usr/bin/dbclient -T -i /home/root/.ssh/mykey -y -L 2345:localhost:22 root@xxx.xxx.xxx.xxx





Køres /etc/sshtunnel manuelt kører det. Køres /etc/init.d/sshtunnel - kører det ikke, men kan se ved hjælp af echo af scriptet køres - men afsluttes igen med det samme derefter. har prøvet at holde sleep på 20sek men samme problem alligevel!

Hvordan kan dette script foresættes i baggrunden.

Løsningen var:



/usr/bin/dbclient -T -i /home/root/.ssh/mykey -y -L 2345:localhost:22 root@xxx.xxx.xxx.xxx -N &



bare til orientering

  • Log in to post comments

Svar søges

Test 0
Den er go 0
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

"Intet realistisk alternativ" - mig i r*ven 5
2 stk Jolla C2 sælges 2
Test 2
Det første forumindlæg efter installation af Forum-modulet 8
Vanilla OS 12
Nye forum-indlæg viser sig kun 1 gang 1
Vil alle forumindlæg vise sig to gange 1
Hjælp til remote terminal vindue? 3
PCLinuxOS 19
Kan ikke boote på installation 24
80-20 reglen 1
Skærmlys fader ud på min bærbare 8
32 bit distro på max 700mb der stadig understøttes 26
Har vi nogen Linux konsulenter i Slagelse området? 3
Virkelig 7
gnome-software? 3
Archer T2U AC600 Wireless Dual Band USB Adapter 26
En farverig APT 3.0 udgivelse imponerer med sine nye funktioner 2
Unix's fødsel 2
Linux Mint 13

Copyright © 2025 Company Name - All rights reserved

Developed & Designed by Alaa Haddad