Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Recomandare bicicleta MTB copil 1...

Denon AVR 1804

Texte și mesaje funny pe sit...

Recomandari carti non-fictiune
 Cat costa un pui la rotisor?

cum leg firele de la o pompa subm...

PC Voltage +3.3V Red!

Cum conectez la net o centrala Fe...
 w11 nu mentine profil power proce...

DIGI se lanseaza in Belgia cu ser...

Setari XMP ram pentru 5900x - BSO...

Iphone 13, 14 sau 15?
 Dune: Prophecy (2024 _ ...)

DMSS problema

Montare parchet in balcon

Exista doar ... si restul
 

Problema crontab

- - - - -
  • Please log in to reply
26 replies to this topic

#1
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
De multi ani folosesc doua cronuri de forma:
$ crontab -l
30 8-23 * * * espeak -vro -a 12 "Ceasul este $(date +\%R)." # JOB_ID_1
0 8-23 * * * espeak -vro -a 12 "Ceasul este $(date +\%R)." # JOB_ID_2

care imi fac calculatorul sa-mi spuna ora la fiecare jumatate de ora intre orele 8-23.
Metoda a functionat fara niciun fel de probleme pana prin primavara acestui an cand am constatat la un moment dat ca daca in momentul in care ar trebui sa-mi spuna ora, placa audio e ocupata de altceva (player audio, video, browser deschis pe youtube sau altceva), comanda de espeak ramane cumva suspendata si intra in functiune abia cand inchid playerul sau browserul, si abia atunci imi spune ceea ce trebuia spus la momentul respectiv.
Mai concret: daca trebuia sa-mi spuna ora la 20, sa zicem, si in momentul acela ascultam muzica cu Audacious pe care il opresc la 20:10, abia atunci imi spune "ceasul este douazeci".
Daca opresc Audacious nu la 20:10 ci la 20:35, in acel moment imi spune simultan ca a fost opt suprapus peste a fost opt treizeci, adica ambele anunturi pe care trebuia sa le faca in timp ce mergea playerul audio.
Repet, asta se intampla de prin primavara. Pana atunci muti ani de zile nu a existat aceasta problema.
Stie cineva vreo rezolvare sau, daca nu exista, o alta metoda de a comanda espeak sa-mi spuna ora in acelasi fel?

#2
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Nu are nimeni un raspuns?
Problema sigur e legata dre cron, si nu de espeak sau pulseaudio, pentru ca dau aceeasi comanda in terminal in timp ce functioneaza un player, espeak imi spune cat e ceasul.

#3
georgica

georgica

    Active Member

  • Grup: Members
  • Posts: 1,489
  • Înscris: 30.01.2003
Îți dai seama că problema ta este una mai rar întâlnită, nu văd prea multe cazuri în care ai vrea să-ți spună cineva cât este ceasul.
Nu ai dat suficiente detalii, ce versiune de linux, de cron, de espeak.
Eu sînt mai mult ca sigur că problema nu este de la cron, mai degrabă de la pulseaudio.
Am făcut un test pe Debian 10 cu cron 3.0pl1-134, espeak 1.48.03 și cu alsa în loc de pulseaudio și a funcționat corect chiar dacă în acel moment rula audacious.

Ca un sfat legat de cron, poți folosi 0,30 8-23 * * * ... în loc de cele 2 intrări separate.

#4
born2lose

born2lose

    Senior Member

  • Grup: Senior Members
  • Posts: 7,798
  • Înscris: 06.09.2004
uite o sugestie, desi nu stiu daca are legatura cu problema ta - niceness    :)

ambele procese ruleaza sub acelasi user? adica cronul si audacious?

#5
mufa

mufa

    Porc misogin

  • Grup: Super Moderators
  • Posts: 40,799
  • Înscris: 13.01.2005
Nu pare să fie o problemă de cron, ci de aplicație/driver. Dacă te uiți prin loguri vei vedea că espeak a rulat la orele stabilite, doar că n-a putut să preia controlul audio ca să-ți spună ție cît e ceasul.

#6
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Mulțumesc mult pentru sfaturi.
Nevoia unui ceas vorbitor se datoreaza faptului ca sunt lipsit in totalitate de notiunea timpului. Si in telefon am ceva asemanator.
E vorba de Linux Mint Cinnamon 19.2
cron 3.0pl1-128.1ubuntu1
espeak 1.48.04+dsfg-5
pulseaudio 1:11.1ubuntu7.2
dar și in Mint 19.1 sau Manjaro facea la fel.
Momentan am updatat cronul la versiunea 3.0pl1-134 si astept sa vad cum se comporta.
Treaba e ca nu pot inlocui pulseaudio cu alsa ca am niste aplicatii care depind de acesta.
Revin.

#7
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
@born2lose
Da

@mufa
O sa ma uit (trebuie mai intai sa le gasescPosted Image) dar mi se pare ciudat că daca, in timp ce canta playerul, dau comanda in terminal imi spune cat e ceasul. De aceea am presupus ca e de la cron. Ca si cum in acel moment nu ar avea drepturi de executie in pulseaudio care raman suspendate pana opresc playerul.

#8
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Ai dreptate. Asta e in log la o ora cand aveam un player pornit:
Aug 25 13:30:01 eu-desktop CRON[6150]: (eu) CMD (espeak -vro -a 12 "Ceasul este $(date +%R)." # JOB_ID_1)
Aug 25 13:30:01 eu-desktop pulseaudio[2497]: [alsa-sink-ALC1150 Analog] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Aug 25 13:30:01 eu-desktop pulseaudio[2497]: [alsa-sink-ALC1150 Analog] alsa-sink.c: Error opening PCM device front:0: Device or resource busy

Intrebarea este cum rezolv, sau daca mai exista o alta metoda pentru a face calculatorul sa-mi spuna ora.

#9
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 399,554
  • Înscris: 08.10.2015
Instaleaza alsa-utils (nu am idee numele exact pe Debian si derivatele lui) si incearca:
espeak -vro -a 12 "Ceasul este $(date +\%R)." --stdout | aplay



#10
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
alsa-utils era deja instalat (1.1.3-1ubuntu1) asa ca am schimbat doar comanda cu cea indicata de tine dar, din pacate, nu s-a schimbat nimic.
Asta am in log pentru ora 22 in timp ce era pornit un player
Aug 25 22:00:01 eu-desktop CRON[4494]: (eu) CMD (espeak -vro -a 12 "Ceasul este $(date +%R)." --stdout | aplay # JOB_ID_1)
Aug 25 22:00:01 eu-desktop pulseaudio[2207]: [alsa-sink-ALC1150 Analog] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Aug 25 22:01:54 eu-desktop CRON[4493]: (CRON) info (No MTA installed, discarding output)



#11
MartinAdelberg

MartinAdelberg

    Member

  • Grup: Members
  • Posts: 866
  • Înscris: 23.08.2019

 tekoa, on 25 august 2019 - 10:08, said:

Nu are nimeni un raspuns?
fa-ti un script/program care la ora data de crontab, lanseaza scriptul/programul in executie, si acel script/program lanseaza acel fisier audio, intr-un thread paralel.
in crontab vei trece ora la care este lansat scriptl/programul care lanseaza la randul lui acel fisier audio.

#12
MartinAdelberg

MartinAdelberg

    Member

  • Grup: Members
  • Posts: 866
  • Înscris: 23.08.2019
idea este ca acel lansarea acelui program/script creaza un thread paralel iar ce pui in acel thread e problema ta.iar tu pui ca in acel thread paralele sa ruleze un fisier audio.
Consecinta este ca pe placa audio vor rula in paralele si fisierul tau la ora dorita si orice se mai gaseste la ora respectiva care ocupa placa audio atunci,

#13
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 399,554
  • Înscris: 08.10.2015

Quote

Aug 25 22:00:01 eu-desktop pulseaudio[2207]: [alsa-sink-ALC1150 Analog] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Ai gasit problema, eram sigur ca asta e. Pentru rezolvare adaugi in ~ (home) .asoundrc in care redefinesti dispozitivul tau ca type dmix (parca) astfel poti rula simultan mai multe stream-uri audio pe acelasi dispozitiv (placa de sunet).

#14
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019

 MartinAdelberg, on 25 august 2019 - 21:50, said:

fa-ti un script/program care la ora data de crontab, lanseaza scriptul/programul in executie, si acel script/program lanseaza acel fisier audio, intr-un thread paralel.
in crontab vei trece ora la care este lansat scriptl/programul care lanseaza la randul lui acel fisier audio.
Nu stiu daca am inteles corect.
Adica crontab in loc sa-mi lanseze la ora respectiva espeak care sa-mi spuna ora, adica comanda
espeak -vro -a 12 "Ceasul este $(date +%R)."
sa-mi lanseze un script plasat undeva care sa conțina acea comanda?
Daca da, asta e unul dintre lucrurile pe care le-am incercat prima data caci observasem, asa cum am mai spus, ca desi cron-ul cu comanda nu are efect daca e placa audio ocupata cu ceva, aceeasi comanda data in terminal in aceleasi conditii producea efectul dorit si, desi nu prea stiu eu mult linux, mi-am inchipuit ca activarea unui script care sa contina acea comanda la o anumita ora de catre crontab e tot aia cu darea acelei comenzi in terminal.
Din pacate efectul e acelasi.
Daca imi canta playerul si dau clic pe script se aude ca imi zice si espeak ora, dar daca e activat de crontab nu-si face treaba, e mut.
Eroarea in log in acest caz ecam tot aia din postarea #8, doar ca in loc sa-mi zica ca a pornit cron-ul espeak-ul, imi zice ca a pornit scriptul dar in rest e la fel, tot povestea cu
Device or resource busy
mi-o zice.

@Kagaroth
Acum chiar m-ai blocat. Nu prea înțeleg cum se face chestia aia.
Treaba e ca de fapt se pot rula mai multe streamuri audio simultan, ca m-am gandit si la asta și, ca sa verific, am pornit trei playere in acelasi timp si se auzeau toate. Doar cu espeak are problema asta din ce constat eu.

#15
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Adica doar cand e comandat de catre cron espeak nu vrea sa-si faca treba ca, asa cum am mai zis de cateva ori, daca dau comanda aia in terminal imi spune cat e ceasu chiar daca canta si playerul.
Concluzie:
espek nu vrea sa vorbeasca cand e un player pornit decat daca e comandat din terminal, sau daca e comanda trecuta intr-un script pe care sa da click .
Daca comanda e trecuta in cron, sau daca scriptul cu comanda e activat de un cron atunci nu-si mai face treaba decat daca placa audio nu e ocupata cu altceva.
Placa audio permite mai multe streamuri audio simultan atat timp cat se pot auzi doua playere pornite in acelasi timp.
Concluzia voastra??? ...ca eu nu mai inteleg nimic.
De ce din terminal sau cu un click de mouse merge iar cu crontab-ul nu? Care e diferenta?

#16
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Nu vine nimeni cu vreo concluzie, ca sa inteleg si eu de ce, daca functioneaza un player in timpul ala, comanda aia care instruieste espeak-ul sa-mi spuna ora, e functionala doar daca e data in terminal si nu si daca e activata de un cron?
Cine e de fapt de vina, ca sa pot cauta totusi o solutie, sau cum s-ar putea remedia problema?

#17
spps2019

spps2019

    Member

  • Grup: Validating
  • Posts: 445
  • Înscris: 08.08.2019
ai incercat un RT kernel?

#18
tekoa

tekoa

    Junior Member

  • Grup: Junior Members
  • Posts: 70
  • Înscris: 11.08.2019
Nu se încumetă nimeni cu o explicație si o soluție pentru aceasta stranie ciudățenie?
Între timp am mai încercat și cu saytime și m-am izbit de aceeasi problemă manifestată identic:
Dacă în timpul ăla placa audio e ocupată de ceva (un player) comanda dată în terminal sau trecută într-un script activat manual funcționează, dar dacă comanda sau scriptul e activat de un cron binevoiește să-mi dea întotdeauna eroarea

Quote

[alsa-sink-ALC1150 Analog] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Căutând dupa eroarea asta pe net nu găsesc decât niște informații vagi (mai mult lipsă) și fără legătură cu aceasta problemă care implică crontab.

Edited by tekoa, 25 October 2019 - 00:21.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate