Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: anthAn 06 Ledna 2010, 01:06:44

Název: gAnyRemote - potřebuju radu
Přispěvatel: anthAn 06 Ledna 2010, 01:06:44
Mam tenhle soft na ovládání přehrávačů přes BT, ale chtěl bych to nějak poladit, abych s tim mohl i vypnout PC, chtěl bych nahradit jednu klávesu na mobilu (PREV) vypnutím PC, ale nevím vůbec jak. Tady postnu config soubor a chtěl bych pomoct jak to udělat aby spouštěl externí aplikaci, třeba shutdown v terminálu.

Díky
Kód: [Vybrat]
%
% anyremote configuration file for Totem management (Server-mode Bemused emulation)
% Prerequisites: amixer utility, Bemused client installed on cell phone
%

% STATUS need_improvement
% TODO load totem with playlist ready
% XTEST no
% SOUND mixer
% ENV no

% Uncomment if needed
%AutoRepeat=false
%Baudrate=19200
%Device=bluetooth:19
%Log=true
Screen=true

GuiAppName=Totem
GuiAppBinary=totem
GuiAppRun=echo 'A=`ps -ef|grep totem|grep -v grep`; if [ "x$A" == "x" ]; then echo NOK; else echo OK; fi' | bash -f -s
GuiAppIcon=totem.png
GuiAppType=Application
GuiAppModes=Bemused
GuiAppDesc=Totem is the official movie player of the GNOME desktop environment based on xine-lib or GStreamer.

[Aliases]
STRT=PLAY
LADD=PLAY
STEN=STOP
[End]

[Keys]

(Connect)=Exec(echo 'P=`ps -ef | grep totem | grep -v grep | grep -v anyremote | grep -v nedit`; if [ "x$P" == "x" ]; then totem& fi' |bash -f -s);

EXIT=Exec(totem --quit)
FADE=Exec(amixer -c $(MixerCard) sset $(MixerChannel),0 0 -q)
FFWD=Exec(totem --seek-fwd)
INF2=Send(string,INF2ACK);Send(bytes,128,0,0,0,128,0,0,0,1,0,0);Send(string,Totem);Send(bytes,0,0)
INFO=Send(string,INFOACK);Send(bytes,128,0,0,0,128,0,0,0,1,0,0);Send(string,Totem)
NEXT=Exec(totem --next)
PAUS=Exec(totem --pause)
PLAY=Exec(totem --play-pause)
PREV=Exec(totem --previous)
RWND=Exec(totem --seek-bwd)
STOP=Exec(totem --pause)
VOLM($$)=Exec(amixer -c $(MixerCard) sset $(MixerChannel),0 $(Param)% -q);

%GVOL=Send(string,GVOLNAK)
GVOL=Send(string,GVOLACK);Make(var,tm_volume,echo 'V=`amixer -c $(MixerCard) sget $(MixerChannel),0|grep "Left: Playback"|tail -1|cut -f 1 -d "%"|cut -f 2 -d "["`;echo "$V*255/100"|bc'|bash -f -s);Send(bytes,$(tm_volume))

%REPT=Exec()
%SHFL=Exec()

% The following is a trick. Replays are not real, just to satisfy client.
CHCK=Send(string,Y);
DINF=Send(string,DINFACK);Send(bytes,0,0,0,244,0,0,32,0,0,0,0,2);
DLST=Send(bytes,255,0)
DOWN=Send(bytes,0,100);Send(string,NoName)
FINF=Send(string,FINFACK);Send(bytes,0,0,0,100);
LIST=Send(bytes,255,0)
PLEN=Send(bytes,0,100)
PLST=Send(string,PLSTACK);Send(bytes,0,1,35,10);Send(string,NoName);Send(bytes,10,0)
%SEEK=
%SLCT=
VERS=Send(string,VERSACK);Send(bytes,1,73);

[End]
Název: Re: gAnyRemote - potřebuju radu
Přispěvatel: ufaak 06 Ledna 2010, 07:32:42
potrebujes (nejspis) spustit (exec) program shutdown. to jsi napsal spravne. Jenze ten prikaz pozaduje prava roota. Takze poresit nejakym skriptem (hledej, tady na foru jsem na to narazil) ktery bude volat program s pravy roota a rovnou doda i heslo.
Název: Re: gAnyRemote - potřebuju radu
Přispěvatel: Firzen 06 Ledna 2010, 21:36:35
potrebujes (nejspis) spustit (exec) program shutdown. to jsi napsal spravne. Jenze ten prikaz pozaduje prava roota. Takze poresit nejakym skriptem (hledej, tady na foru jsem na to narazil) ktery bude volat program s pravy roota a rovnou doda i heslo.
Což bude asi potřebovat nechráněné rootovo heslo a bude to tedy nebezpečné. Já bych to vyřešil, možná spártánsky, jinak. Udělal bych skript nebo program, který by běžel od startu počítače s právy roota a třeba každých 10 sekund kontroloval, zda na nějakém místě neexistuje nějaký soubor(třeba i se spec. obsahem) a pokud by ho objevil, tak by ho smazal a spustil by příkaz halt. Takže do /etc/init.d bych dal třeba program haltbot, který bude kontrolovat, zda se v ~/.haltbot/spostec_xxx1 náhodou nevyskytuje text "kdo to cte je vul!". Ten program je však ještě třeba aktivovat(jak mi poradil Quejky) v initscriptu příkazem #update-rc.d haltbot default. Mělo by to šlapat a hlavně to bude bezpečné, protože program bude pod rootem umět udělat jen jedinou věc - vypnout počítač.
Název: Re: gAnyRemote - potřebuju radu
Přispěvatel: MacHala 07 Ledna 2010, 12:22:38
btw, nevim jak v ubuntu, ale u me ve fedore na spusteni "poweroff -f" root potreba neni, nebo by taky mohlo a napr pridani shutdownu do sudoers, tak aby to mohli spoustet vsichni je imho taky lepsi volba nez vytvaret nejaky daemon