abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 19
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak v shellu poslat "signál" jinému uživateli?

24.1.2007 15:51 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
Jak v shellu poslat "signál" jinému uživateli?
Přečteno: 122×
Jak co nejlíp předat v shellu nějaký signál nebo zkrátka nějakou krátkou informaci - takový spuštěč jinému uživateli?

O co jde. Píšu v shellu nějaké zpracování dat. Chci mít oddělený příjem od zpracování, takže mám dva uživatele. Jeden přijme data z jiného serveru přes ssh a měl by nějak dát vědět druhému uživateli, aby ty data zpracoval.

I to "dát vědět" bych mohl udělat přes ssh, ale připadne mi to zbytečně overkill. Možná to zkusím udělat nějak přes sudo. Ale třeba máte někdo nějaký lepší nápad.

Odpovědi

24.1.2007 16:05 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
co tak vytvorit nejaky (prazdny) subor ? druhy user bude v cykle checkovat, ci subor existuje. ak ano, spracuje data a zmaze ho.
24.1.2007 17:09 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Nebylo by jednodušší rovnou použít pojmenovanou rouru?
24.1.2007 17:17 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Ano, osobně bych se přikláněl také k pojmenované rouře někde ve var, do které bude smět zapisovat pouze user1 a proces pod user2 z něj bude chtít číst.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
Josef Kufner avatar 24.1.2007 18:14 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
někde ve var,
/var/run, /tmp nebo /var/tmp. Jinde to nemá co dělat.
Hello world ! Segmentation fault (core dumped)
25.1.2007 09:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Vážně? A co takhle /var/spool/<jméno služby> když to budu považovat za systémovou službu, tak je to naprosto adekvátní místo.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
Josef Kufner avatar 25.1.2007 13:57 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
No dobře, no. ;-)
Hello world ! Segmentation fault (core dumped)
25.1.2007 06:56 Martin Lebeda | skóre: 21 | blog: Martinuv_blog | Plzeň
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?

Já osobně to mám takto:

mkfifo /tmp/alarm
chmod 660 /tmp/alarm

A pod svou session startuji: while true; do osd_cat ... < /tmp/alarm; done &

Jakýkoliv program pak může provést echo "zprava" > /tmp/alarm.

25.1.2007 07:57 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Nějakému cyklu či cronu jsem se právě chtěl vyhnout...
25.1.2007 09:41 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
A to jako ten signál chcete poslat neexistujícímu (neběžícímu) procesu? Nebo v čem jiném by ten váš druhý program byl než ve smyčce. Asi vám vůbec není jasné jak to funguje, protože ten script čeká na vstup a tedy nijak nevytěžuje cpu.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.1.2007 12:32 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Nebo v čem jiném by ten váš druhý program byl než ve smyčce.
Může být ve stavu čekání na signál. Kdyby běžel ve smyčce, bude zbytečně vytěžovat CPU.
Quando omni flunkus moritati
25.1.2007 12:34 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Jenže on právě v žádné smyčce běžet nebude, bude ve stavu S a čekat na vstup z té roury.
25.1.2007 18:07 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Nebo v čem jiném by ten váš druhý program byl než ve smyčce.
Může být ve stavu čekání na signál. Kdyby běžel ve smyčce, bude zbytečně vytěžovat CPU.
Jenže on právě v žádné smyčce běžet nebude, bude ve stavu S a čekat na vstup z té roury.
Přiznávám se bez mučení, že mám asi dlouhé vedení, ale ten tvůj příspěvek nechápu...
Quando omni flunkus moritati
25.1.2007 12:53 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
ale to cakanie na signal bude v cykle..
25.1.2007 13:53 Martin Lebeda | skóre: 21 | blog: Martinuv_blog | Plzeň
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?

Pokud čte z roury tak v žádné smyčce není. Zkuste si to spustit jen tak v terminálu. Zjistíte, že se spustí a zastaví se na čtení a nepokračuje, dokud nemá načtena data, tj. dokud do roury jiný proces nepustí EOF. Když má načteno tak pokračuje, tj. zobrazí načtený text a ukončí se.

Smyčka jej znovu spustí a on se opět zastaví dokud nepřijde vstup. Je zcela lhostejné, zda čeká na vstup sekundu nebo 2 hodiny, po tu dobu se neprovádí žádné instrukce a program stojí.

25.1.2007 14:31 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
samozrejme, ale cele to je stale v cykle. tomu sa proste neda vyhnut.
25.1.2007 14:40 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Jasně, ale stručně řečeno - ta smyčka žádný čas procesu nežere. Je použitá jen na to, aby se nahodil znovu osd_cat. Ten se totiž jinak po obdržení EOF ukončí.
25.1.2007 14:58 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
jasne, ja to cele chapem! :) len reagujem na toto:
"Nějakému cyklu či cronu jsem se právě chtěl vyhnout..."

vsetky prispevky pod tym vyznievaju ako 'skvele riesenie bez cyklov' co nie je vobec pravda.
25.1.2007 15:20 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Dotyčný totiž nejspíš chtěl vyhnout řešení, které by opakovaně kontrolovalo nějaký soubor, jestli do něj něco náhodou nepřibylo. Ovšem toto řešení zrovna takto nefunguje, protože pokud si třeba do té roury nechá posílat obsah jiné roury, tak žádný EOF nepřijde a osd_cat prostě vypisuje obsah roury na obrazovku. Jinými slovy ta smyčka není nezbytně nutná, zbaví vás jen nutnosti znovu nahazovat osd_cat v případě že na něj ten EOF náhodou někdo pošle..
25.1.2007 21:54 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Dotyčný se taky dost blbě vyjádřil. Ale nakonec to udělal přes to sudo. Což vypadá, že by mu mohlo vyhovovat.

Akorát zjistil, že v tom scriptu spuštěném přes sudo nemá práva na zápis do /dev/stderr
25.1.2007 21:40 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Taky jsem tu diskusi úplně nepochopil. Zřejmě byla o tom, na jaké úrovni ta smyčka běží, přičemž někteří zastavají názor, že od jisté dostatečně nízké úrovně už se o žádné smyčce hovořit nedá. Tohle dokáží jen lidé :-)
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
25.1.2007 21:40 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Taky jsem tu diskusi úplně nepochopil. Zřejmě byla o tom, na jaké úrovni ta smyčka běží, přičemž někteří zastavají názor, že od jisté dostatečně nízké úrovně už se o žádné smyčce hovořit nedá. Tohle dokáží jen lidé :-)
Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
Josef Kufner avatar 26.1.2007 05:00 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Říká se tomu aktivní a pasivní čekání.

Při aktivním čekání běží program ve smyčce a periodicky kontroluje, zda už nastalo to, nač čeká.
while true
do
   # čekání
   while ! [ -f /tmp/baf ]
   do
      sleep 1
   done
   rm -f /tmp/baf
 
   # reakce 
   echo Lek.
done
… je ukázkou aktivního čekání na událost:
touch /tmp/baf
Kdežto při pasivním čekání program prostě řekne operačnímu systému "Hele až se něco bude dít, tak mě vzbuď." a jde spát.
mkfifo /tmp/fifo
while true
do
   # čekání
   cat /tmp/fifo >/dev/null
 
   # reakce
   echo Lek.
done
Bude čekat na událost:
echo Baf >/tmp/fifo
Jak je vidět, oba programy mají nějakou hlavní smyčku, která však s vlastním čekáním nemá vůbec nic společného a v žádném z případů by tam nemusela být – program by pak počkal na jednu událost a skončil.

Nicméně v případě aktivního čekání by bylo možné nahradit čekací cyklus jednoduchou konstrukcí if a nechat program běhat ve hlavní smyčce. To je vhodné, pokud by program měl provádět více věcí najednou. Pro pasivní čekání by bylo v takovém případě nutno využít něco jako select() či alarm(), což má své výhody i nevýhody.

Tak snad už je jasné, kde který cyklus je a co dělá nebo spíš nedělá ;-)
Hello world ! Segmentation fault (core dumped)
26.1.2007 11:39 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
a komu to jasne nebolo ?
24.1.2007 16:43 podlesh | skóre: 37 | Praha
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Nestačilo by klasické write ?

Nebo talk, v komibnaci s pípáním to nelze ignorovat :-)
24.1.2007 19:25 cynik
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Delal bych to uplne stejne jako v C cili posilanim signalu. Pres trap se nadefinuje ovladac signalu:
trap 'echo dostal jsem' USR1
a pres kill se mu z jineho procesu posle signal:
kill -USR1 [cislo processu]
24.1.2007 19:34 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Má to drobnou chybu: nejste-li root, nemůžete posílat signály cizím procesům. Proto asi tazatel zdůrazňoval, že ty dva procesy běží pod různými uživateli.
houska avatar 25.1.2007 08:43 houska | skóre: 41 | blog: HW
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
shutdown -k now "zprava"
25.1.2007 09:42 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Hmm, taky dobré, jen co kdyby jste si přečetl i něco víc než jen nadpis.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.1.2007 09:48 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
A co takhle sudo a rovnou to zpracování spustit z toho prvního scriptu, třeba i na pozadí.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
26.1.2007 03:32 mikky | skóre: 25 | blog: Ghlog | M. L. - Praha
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Já bych to asi řešil přes tu pojmenovanou rouru a cyklus:
mkfifo /tmp/mojeroura
a pak zpracovávací skript
while read promenna < /tmp/mojeroura; do
    if [ $promenna == zpracuj ] then
        #proved zpracovani
    fi 
    #pripadne misto if nejaky case pro vic moznosti
done
Upřímě nechápu, proč se chceš vyhnout cyklům? Jasně, třeba cykly typu "while /bin/true; do if grep "akce" /tmp/ridicisoubor; then udelej_akci; fi; sleep 1; done" jsou trošku hloupý, ale když se cyklus postaví tak, jak jsem psal, při volání příkazu read se skript zastaví a bude čekat tak dlouho, dokud se v rouře neobjeví informace. Pokud informace bude EOF, cyklus se ukončí. Pokud bude něco jiného, řádek se uloží do proměnné "promenna" a dá se s ní pak v tělě cyklu pracovat...

-miky

PS. řešit to přes sudo? neni to drobet brutální? ;-)
Je vám méně než 30 ? (jsme vrstevnící => budeme si tykat) : (jsem pro vás bažant => můžete mi tykat);
26.1.2007 11:21 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
PS. řešit to přes sudo? neni to drobet brutální? ;-)
No ve srovnání s psaním nějakého scriptu, který musí jako proces běžet celou dobu a mít vyřešen případný respawn, protože spadnout to může vždycky atd, ... No tak sudo je teda fakt jednodužší a mnohem spolehlivější způsob.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
Josef Kufner avatar 26.1.2007 11:25 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak v shellu poslat "signál" jinému uživateli?
Respawn se řeší zrovna celkem lehce – viz /etc/inittab. Ale vzhledem k tomu, že tazatel neprozradil o co vlastně jde, lze jen těžko rozhodnout, které řešení je nejvhodnější v tomto případě.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.