Sida 1 av 1

köra kommando vid start?

Postat: 23 apr 2008, 20:14
av jansson
Hej.

Kan man lägga in terminalkommandon som automatiskt körs vid uppstart någon stans?

Vill kunna få datorn att vara anslutningsbar för min wiimote hela tiden. Så jag bara kan ta wiimoten och försätta den i anslutningsbart läga, och så blir jag automatiskt ansluten direkt. Utan att behöva skriva in wminput i terminalen som är kommandot för att ansluta wiimoten.

Jag skulle dessutom vilja att upplösningen ändras och vlc (eller nått annat lämpligt program) startas vid anslutning av wiimoten. Så är det någon som vet om det finns någon funktion i ubuntu som kan känna av när wiimoten ansluts och därefter köra kommandon? Typ som Plug 'n play.

Tanken är jag jag ska ha ett enkelt sett att fjärrstyra datorn när jag kollar på film. Har nämligen TV:n ansluten till datorn och den är 16:9 medans vanlig skärmen är 4:3, därav vill jag att upplösningen byts när wiimoten ansluts. Har redan ställt in så wiimotens knappar motsvara knapparna för kortkommandon i VLC.
Diskuterade det där i den här tråden om någon är intresserad.
http://ubuntu-se.org/phpBB3/viewtopic.php?f=55&t=26438

Re: köra kommando vid start?

Postat: 23 apr 2008, 20:23
av Hund
System / Preferences / Sessions. Där kan du lägga till wminput.

Re: köra kommando vid start?

Postat: 23 apr 2008, 20:35
av jansson
Aahhh!!! Glömde säga att jag kör KDE.

Finns inget sånt i sessions i KDE. Men kanske någon annan stans?

Re: köra kommando vid start?

Postat: 23 apr 2008, 20:57
av Osprey
Jag vet inte om det finns i KDE, men annars kan du ju alltid lägga in kommandot i en fil i typ /etc/rc6.d, då verkställs det ju direkt varje gång datorn startar om.

Re: köra kommando vid start?

Postat: 23 apr 2008, 21:11
av jansson
Är det en fil som ska finnas eller kör den alla filer i /etc vid start?

För jag har inte den. Men jag har /etc/rc.local som värkar vara en fil som är till för just detta ändamål enligt kommentarerna i den.

Hur som hälst så är jag inte säker på om det kommer funka. För det står att man ska se till att returvärdet är noll och jag vet itne vad som händer annars. Jag tordes inte testa starta om datorn fall den skulle stanna hela botsekvensen tills returvärdet är noll (troligtvis inte men vad vet jag). Men jag testade att skriva in:

Kod: Markera allt

wminput -d
exit 0
och så körte jag bash /etc/rc.local och fick:

Kod: Markera allt

micke@micke-desktop:~$ bash /etc/rc.local
Bluetooth name read error
error finding wiimot
Men wiimoten var inkopplad.

Törs jag starta om datorn nu eller?

Re: köra kommando vid start?

Postat: 23 apr 2008, 21:26
av Osprey
Ligger den sist i rc.local så bör det inte vara några problem. Det är ingen fara att starta om datorn och får du samma problem igen så är det bara att logga in i textmode och skriva:

cd /etc
mv rc.local rc.anything
touch rc.local

eller något liknande, och sedan trycka ^D eller skriva reboot.

Re: köra kommando vid start?

Postat: 23 apr 2008, 21:29
av Lars
Som jag förstår det så vill du inte starta programmet när du startar datorn utan när du pluggar in hårdvaran, stämmer det? I så fall får du kika på /etc/hal, men jag vet inte exakt hur det fungerar.

Re: köra kommando vid start?

Postat: 23 apr 2008, 21:38
av jansson
Kom på varför jag fick felmedelande. Hade redan en wminput -d igång i en annan process.
Lars skrev:Som jag förstår det så vill du inte starta programmet när du startar datorn utan när du pluggar in hårdvaran, stämmer det? I så fall får du kika på /etc/hal, men jag vet inte exakt hur det fungerar.
Japp. Men jag kom på att man jag kan fixa det med kortkommandon. Mappar 1:an och 2:an på wiimoten till några ovanliga keyboardinputs och använder dom som kortkommandon till att byta upplösning till 1280x768 och start vlc på 1:an och 1280x1024 och stänga vlc på 2:an.

Det ända jag inte vet hur man gör är att stänga ett redan startad instans av ett program via kommando. Någon?

Re: köra kommando vid start?

Postat: 23 apr 2008, 21:45
av Lars
jansson skrev:Det ända jag inte vet hur man gör är att stänga ett redan startad instans av ett program via kommando. Någon?
Se man pkill.

Re: köra kommando vid start?

Postat: 23 apr 2008, 22:36
av Osprey
Det ska förresten inte spela någon roll vad ditt kommando gör exit med, så länge du inte har någon felhantering och gör exit ur rc.local med det värdet, rc.local märker egentligen inte alls vad ditt kommando returnerar. Dessutom behöver du knappast använda pkill eller något annat i det läget eftersom rc.local körs vid boot och då har ju ingen varit inne i burken och startat upp något innan.

Jag provade förresten att göra exit med lite alla möjliga värden från ett enkelt script som jag anropade från ett annat. Det anropande scriptet hade trap (aka. sigcatcher) uppsatt för alla signaler mellan 1 och 128 och det lyckade inte fånga en enda exit. Så det spelar ingen roll om startupen har trap på lite allt möjligt, den ska ändå inte reagera.

Däremot kunde jag ju (givetvis) se vad scriptet returnerade med "echo $?".

Re: köra kommando vid start?

Postat: 24 apr 2008, 12:33
av jansson
Nu fungerar allt.
1:an på wiimoten byter upplösning och startar min videomapp i dophin som jag konfiguerat kortkommandona på så jag kan styra den med wiimoten.

"Dessutom behöver du knappast använda pkill eller något annat i det läget eftersom rc.local körs vid boot och då har ju ingen varit inne i burken och startat upp något innan."

Tanken var att jag skulle kunna stänga vlc med wiimoten. Inte stänga något i starten. Men jag löste det med att mappa "homeknappen" till ESC och använda den som kortkommando i vlc och dophin för att avsluta.
Vissa videoformat vill bara starta med Kaffeine så jag ställde in kortkommandon där med, men ESC funkade inte som exit. Men det kan jag leva med.
Annars har jag ställt in alla viktiga funktioner som typ play/paus, fullscreen, fastforward, volume osv till kortkommandon som motsvarar knapparna i wiimoten i både vlc och kaffeine.

Tack för all hjälp!