Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: koperator 05 Října 2019, 16:24:51

Název: CRON, spustenie filmu. [Vyřešeno]
Přispěvatel: koperator 05 Října 2019, 16:24:51
Ahoj.
Skúšam spustiť film v daný čas.
Do príkazového riadku napíšem tento príkaz "DISLPLAY=:0 vlc Plocha/Servis/AUTO.mp4 ".
Film sa mi spustí.
Ak to však napíšem do Cronu, tak sa nič nedeje. (*/1 * * * *  DISLPLAY=:0 vlc Plocha/Servis/AUTO.mp4).
To */1 je tam len preto aby som nemusel nastavovať čas, keď to skúšam.
Cron určite funguje lebo som mu tam napísal príkazy na kopírovanie a vymazávanie súborov
a to funguje.
Vo všeobecnosti mám problém spustiť v Crone - Príkazový riadok, web prehliadač a aj video.
To čo odladím v príkazovom riadku, by som rád nakopíroval do Cronu alebo skriptu no tam mi to už nefunguje.
Výminkou je len kopírovanie a mazanie súborov. To funguje spoľahlivo aj v Crone.

Ďakujem.
Název: Re:CRON, spustenie filmu.
Přispěvatel: koperator 05 Října 2019, 18:04:27
Do logu mi vypísalo:
No protocol specified.
Nelze otevřít displej:
Seznam všech dostupných možností získáte příkazem "vlc --help".

Ja tam mám aj totem, takže "totem --help".
Poskúšal som, čo som vedel, potrebujem radu.
Název: Re:CRON, spustenie filmu.
Přispěvatel: juwa2 05 Října 2019, 21:48:43
Cronem není problém spustit nějaký příkaz který má něco provést (např. něco kopírovat, smazat atd.).
Pokud se ale má spustit nějaká GUI aplikace (otevřít nějaké okno atd.), je to o něco složitější, navíc se řešení liší podle konkrétní verze Ubuntu. Nicméně řešit to lze. A napsat do příkazu "DISLPLAY=:0" nestačí, to fungovalo v dřívějších verzích....
Nepíšeš, jakou verzi Ubuntu používáš, napíšu ti tedy funkční postup pro U18.04
-----------------------------------------------------------------------
Princip je ten, že si napíšeš spouštěcí skript a teprve tento skript budeš spouštět cronem.
Takže si vytvoř soubor
Kód: [Vybrat]
~/vlc_launcher.sh
s obsahem
Kód: [Vybrat]
#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
vlc ~/Plocha/Servis/AUTO.mp4

Pokud používáš jiné prostředí než gnome, musíš to ve skriptu zohlednit (místo gnome-session tam napiš mate-session příp. jiné).

Nastav mu spustitelnost.
Kód: [Vybrat]
chmod a+x ~/vlc_launcher.sh
Příkaz do cronu pak bude (pro vyzkoušení, spouštění každou minutu)
Kód: [Vybrat]
* * * * * ~/vlc_launcher.sh--------------------------------------------------------------------
Závěrem připomínám, že cron neumí spouštět promeškané úlohy (pokud v době naplánovaného spuštění je PC uspaný/vypnutý, úloha se nespustí). I to lze však řešit, např. pomocí fcron což je v podstatě takový "cron na steroidech".
Název: Re:CRON, spustenie filmu.
Přispěvatel: koperator 09 Října 2019, 09:32:07
Urobil som to podľa tých príkazov. Nejde mi to spustiť.
V LOGu mi vypísalo toto:

/home/ubuntu-fujitsu/Plocha/Servis/prehraj.sh: řádek 4: varování: command substitution: ignored null byte in input
[000055bac338cdd0] main interface error: no suitable interface module
[000055bac32aa630] main libvlc error: interface "globalhotkeys,none" initialization failed
[000055bac32aa630] main libvlc: Spouštím přehrávač VLC s výchozím rozhraním. Přejete-li si spouštět přehrávač VLC bez rozhraní, použijte příkaz 'cvlc'.
error: XDG_RUNTIME_DIR not set in the environment.
[000055bac338cdd0] skins2 interface error: cannot initialize OSFactory
[000055bac338cdd0] [cli] lua interface: Listening on host "*console".
VLC media player 3.0.8 Vetinari
Command Line Interface initialized. Type `help' for help.
> Shutting down.
[000055bac338cdd0] [cli] lua interface: Requested shutdown.
[000055bac338cdd0] [cli] lua interface error: Error loading script /usr/lib/x86_64-linux-gnu/vlc/lua/intf/cli.luac: lua/intf/modules/host.lua:289: Interrupted.
[00007fa64c001b70] cache_read stream error: cannot pre fill buffer
[00007fa64c0035b0] mjpeg demux error: cannot peek

Používam: UBUNTU 18.04.3 LTS 64b.
Název: Re:CRON, spustenie filmu.
Přispěvatel: juwa2 09 Října 2019, 11:04:24
No a když spustíš ten skript z Terminálu?
Navíc ten skript má přece jenom 3 řádky a v logu se píše o nějaké chybě ve čtvrtém......
Název: Re:CRON, spustenie filmu.
Přispěvatel: koperator 09 Října 2019, 12:20:46
Ahoj.
Ak ten skript pustím v termináli, tak funguje perfektne.

To, že ukazuje nejakú chybu vo štvrtom riadku je len preto lebo tam mám poznámky.

Kód: [Vybrat]
#!/bin/bash
# Prehra video AUTO.mp4
#
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
vlc ~/Plocha/Servis/AUTO.mp4
Název: Re:CRON, spustenie filmu.
Přispěvatel: juwa2 09 Října 2019, 14:03:48
Dobře, takže si ten skript uprav takto:
Kód: [Vybrat]
#!/bin/bash
# Prehra video AUTO.mp4
#
export DISPLAY=:0 && export XAUTHORITY=~/.Xauthority
vlc ~/Plocha/Servis/AUTO.mp4

To už by fungovat mělo.  ;)
Název: Re:CRON, spustenie filmu.
Přispěvatel: koperator 09 Října 2019, 15:31:42
HURáááááá funguje to.

Pekne sa to spúšťa každú minútu.
Ešte by som potreboval pomôcť aby sa to spúšťalo po reštarte.
Mám tam tento príkaz.
Kód: [Vybrat]
@reboot ....... cesta ku skriptu.
toto mi nefunguje.

toto pekne ide
Kód: [Vybrat]
*/1 * * * * ........skript

Neviem ako to do CRONu napísať aby to šlo aj po reštarte.
Kľudne by stačilo ak by sa to pustilo 1min. po reštarte.
Název: Re:CRON, spustenie filmu.
Přispěvatel: juwa2 09 Října 2019, 15:45:13
Kód: [Vybrat]
@reboot (sleep 60; sh /cesta/ke/skriptu.sh)
A kdyby to náhodou nefungovalo, dej to do rootovského cronu (sudo crontab -e)
Název: Re:CRON, spustenie filmu.
Přispěvatel: koperator 09 Října 2019, 16:13:11
100% - funguje to bez problémov.

sleep 60 - som musel dať na 120 lebo video bolo pustené, kým sa zobrazillo, asi 10s.
Teraz sa pri "sleep 120" UBUNTU spustí a po chvíli za pustí aj video. - Úžasné. Tak som si to predstavoval.
Funguje mi to s "crontab -e" nemusel som zadávať "sudo crontab -e".

Ďakujem za pomoc.
Si macher.