Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: zatnaktel 08 Října 2012, 17:34:48
-
Zdravím, zajímalo by mě, zda-li se někdo už setkal s tímto problémem a jestli někdo neví, jak by to šlo vyřešit.
Abych to nějak uvedl, snažil jsem se napsat script, co pomocí vlc prefix vyfotí obrázek z v4l2 a následně ho odešle přes ftp na můj server, kde se poté zobrazuje.
Script sám o sobě funguje správně, ale kvůli vlc se nesmí spustit pod rootem.
Tento script jsem pomocí cronu nastavil na spouštění každých 10m, upload proběhl, ale foto se nové neudělalo, protože cron to podle všeho spouští defaultně pod rootem, takže jsem nastavil spouštění pod uživatelem normálním. Tedy...
*/10 * * * * zatnaktel /home/zatnaktel/Obrázky/Webcam/live/shotnupload.sh
V tom momentě cron přestal cokoli dělat. Už ani neobnovoval soubory na serveru, prostě vůbec script nespustil. Adresa ke scriptu je správná, tudíž vůbec netuším, čím by to mohlo být.
Dokázal by někdo poradit? Děkuju moc, Zat.
EDIT: Do cronu jsem schválně nahodil...
zatnaktel@Toaster ~ $ crontab -l
# m h dom mon dow command
*/10 * * * * zatnaktel /home/zatnaktel/Obrázky/Webcam/live/shotnupload.sh
* * * * * zatnaktel /home/zatnaktel/Obrázky/Webcam/live/testiq.sh #...TENTO...
... script vypadající následovně:
#!/bin/bash
cd /home/zatnaktel/Obrázky/Webcam/live/
cp logo.png logon.png
Tzn. zkopíruje ve složce obrázek logo.png, ale po dvou hodinách tam logon.png pořád jaksi není. CRON přitom spuštěn opravdu je.
-
No sakryš, zkusil jsem odstranit uživatele v cronu, mezi časem a adresou k scriptu a vše začalo fungovat. Ale já potřebuju nastavit, aby se script v cronu nespouštěl pod rootem, dokáže mi někdo poradit, jak na to? Díky.
EDIT: Když v crontab nenastavím uživatele, script sice funguje, ale vlc se nespustí a obrázek nevyfotí. Někde jsem se dočetl, že u vlc pomáhá --rc-fake-tty, ani nevím, kde jsem to vlastně našel, ale vůbec to nepomáhá.
-
Crontab spúšťa skripty s takými právami a pod takým užívateľom, ako ho Ty edituješ. Je možné, že tomu VLC sa nepáči, že ho spúšťaš v termináli, skús namiesto toho príkaz cvlc, ktoré ide bez GUI.
-
Crontab spúšťa skripty s takými právami a pod takým užívateľom, ako ho Ty edituješ. Je možné, že tomu VLC sa nepáči, že ho spúšťaš v termináli, skús namiesto toho príkaz cvlc, ktoré ide bez GUI.
S cvlc je to to samé. V terminálu to normálně jde, ale přes cron ne.
-
Pokud pracuješ s displejem, je potřeba nastavit proměnnou $DISPLAY, ta v prostředí cronu nastavena není. Běžně je na lokálním stroji výchozí display :0, zjistíš z terminálu příkazem:
echo $DISPLAYPak před příkaz přidáš:
export DISPLAY=:0;
-
Pomohlo! :) Díky ti. Ale mám dotaz, když to fotím přes vlc, vyskočí okno, ve kterém se zobrazí output s obrázkem. (XVideo output). Existuje možnost, že bych to hodil na nějaký jiný existující displej, aby mi to tu každou chvilku nevyskakovalo a nebránilo v práci?
Ale fakt díky!!
-
Pomohlo! :) Díky ti. Ale mám dotaz, když to fotím přes vlc, vyskočí okno, ve kterém se zobrazí output s obrázkem. (XVideo output). Existuje možnost, že bych to hodil na nějaký jiný existující displej, aby mi to tu každou chvilku nevyskakovalo a nebránilo v práci?
Ale fakt díky!!
cvlc to bez okna nezvládne?
-
su $jmeno_uzivatele -c "$nejaky_prikaz"
-
cvlc to bez okna nezvládne?
No, spouštím cvlc, ale vždycky vyhodí XVideo output.
-
cvlc -V dummy by mal cvlc povedat, nech ide bez outputu. http://wiki.videolan.org/Video_Output#dummy
-
cvlc -V dummy by mal cvlc povedat, nech ide bez outputu. http://wiki.videolan.org/Video_Output#dummy
Přesně tak to je! Vše jde, jak má, až na to, že když si teď spustím normálně vlc, abych si přehrál film, po minutě se mi ukončí (v době, kdy se spouští script).
Script cvlc vypadá takhle:
cvlc -V dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/zatnaktel/Obrázky/Webcam/live --scene-prefix image_prefix --scene-format jpg vlc://quit --run-time=1
EDIT: Takže to bylo způsobeno tím, jak jsem velice brzy zjistil, že jsem měl v nastavení dáno Allow ony one instance, takže bylo dost logické, co to dělalo. Tím pádem je vše vyřešeno a mně nezbývá, než vám poděkovat a popřát krásnej večer. Děkuju moc.
-
Mozes este upravit nazov threadu: na koniec pridaj "[vyreseno]", aby bolo jasne, ze je vsetko jasne.