Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.  (Přečteno 6576 krát)

alfonz19

  • Aktivní člen
  • *
  • Příspěvků: 219
Nevím jestli jsem to v předmětu napsal dostatečně srozumitelně, ale dělal jsme co jsem mohl...

Mám skript, který chci, aby se spouštěl pár sekund, ale nezajímá mne jeho (nijaký) textový výstup, a nechci mít otevřený terminál ve kterém běží. Otevřu terminál, NĚCO NAPÍŠU, skript se spustí, zavřu terminál a skript si vesele běží dál a dělá svou práci. Jak vypadá to NĚCO?

Mám za to, že je třeba spustit nový bash, ve kterém tento skript poběží, ale nemohu si vzpomenout ani vyguglit jak to udělat. O možnosti nohup vím, ale existuje i jiná alternativa, kterou bych rád použil.

Předem dík za radu.

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #1 kdy: 19 Července 2012, 14:34:21 »

beer

  • Host
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #2 kdy: 19 Července 2012, 16:31:35 »
To je zajímavé. Jaký je funkční rozdíl mezi použítím

Kód: [Vybrat]
nohup program
a

Kód: [Vybrat]
program &?

Například v /etc/rc.local používám
Kód: [Vybrat]
edge -d neco -a nejakaipadresa  -c neco -k klic -s nejakamaska -l 88.86.108.50:82 &
Byl by rozdíl v něčem, kdybych tam dal například:
Kód: [Vybrat]
nohup edge -d neco -a nejakaipadresa -c neco -k klic -s nejakamaska -l 88.86.108.50:82 &> /dev/null < /dev/null &?
« Poslední změna: 19 Července 2012, 16:37:01 od beer »

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #3 kdy: 19 Července 2012, 17:41:44 »
sak vyzkousej vytvorit skript kde bude

Kód: [Vybrat]
#!/bin/bash

tty | logger;
sleep 1000;
exit 0;

a spust ho z terminalu s & a terminal zavri a potom pomoci nohup a samozrejme se kouki pomoci ``tail /var/log/messages'' kde bezi ;)

myslim, ze to zodpovi vsechny otazky
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

beer

  • Host
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #4 kdy: 20 Července 2012, 04:01:26 »
nezodpoví, v obou případech

Kód: [Vybrat]
$ tail /var/log/messages
tail: „/var/log/messages“ nelze otevřít pro čtení: Adresář nebo soubor neexistuje

Avogadrus

  • Návštěvník
  • Příspěvků: 77
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #5 kdy: 20 Července 2012, 08:49:34 »
& spustí na pozadí jako potomka, při ukončení terminálu se pokusí zabít děti. Nohup mu říká, aby tenhle signál ignoroval. Možná je toho víc, ale sem si vědom jen tohohle.
U12.04; jádro neznámé; XFCE 4.10

beer

  • Host
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #6 kdy: 20 Července 2012, 09:15:26 »
& spustí na pozadí jako potomka, při ukončení terminálu se pokusí zabít děti. Nohup mu říká, aby tenhle signál ignoroval. Možná je toho víc, ale sem si vědom jen tohohle.

Díky za vysvětlení.

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #7 kdy: 20 Července 2012, 10:04:49 »
nezodpoví, v obou případech

Kód: [Vybrat]
$ tail /var/log/messages
tail: „/var/log/messages“ nelze otevřít pro čtení: Adresář nebo soubor neexistuje
hmm .. radsi uz nic nezkousej prosim
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #8 kdy: 20 Července 2012, 12:24:40 »
ntz by si měl uvědomit, že Ubuntu není Suse (messages se nám před nějakým časem ztratily) a beer se může kouknout do /var/log/syslog ;)

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #9 kdy: 20 Července 2012, 12:39:28 »
ntz by si měl uvědomit, že Ubuntu není Suse (messages se nám před nějakým časem ztratily) a beer se může kouknout do /var/log/syslog ;)
oh god ... /var/log/messages je snad vsude, nejen v suse ..

to ze to v ubuntu neni je jen dalsi znamka ze &*^%$#@
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

alfonz19

  • Aktivní člen
  • *
  • Příspěvků: 219
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #10 kdy: 23 Července 2012, 10:35:16 »
díky všem za informace a odpovědi.

Zeptám se ještě na jednu věc. Jak už jsem psal, tak o nohup možnosti vím, ale nebaví mne nutnost přesměrovávat data do souboru v tmpu či do /dev/null

jaký je rozdíl mezi:

nohup sleep 10min > /dev/null &

a

bash -c 'sleep 10 min' &

kromě toho, že v druhém případě se (měl by se) spustí příkaz v novém bashi (jakkoli jsem jeho pid nenašel)? Předem díky

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #11 kdy: 23 Července 2012, 10:41:27 »
...

jaký je rozdíl mezi:

nohup sleep 10min > /dev/null &

a

bash -c 'sleep 10 min' &



sak vyzkousej vytvorit skript kde bude

Kód: [Vybrat]
#!/bin/bash

tty | logger;
sleep 1000;
exit 0;

a spust ho z terminalu s & a terminal zavri a potom pomoci nohup a samozrejme se kouki pomoci ``tail /var/log/messages'' kde bezi ;)

myslim, ze to zodpovi vsechny otazky

^^ budu se opakovat ..
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

jmp

  • Host
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #12 kdy: 23 Července 2012, 11:13:31 »
pro lenochy
/var/log/syslog
Citace
Jul 23 10:47:51 Ubuntu logger: /dev/pts/1
Jul 23 10:47:51 Ubuntu logger: není TTY
druhy pokus je s nohup...

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #13 kdy: 23 Července 2012, 22:07:43 »
screen???
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

alfonz19

  • Aktivní člen
  • *
  • Příspěvků: 219
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #14 kdy: 24 Července 2012, 08:14:10 »
fajn, chápu. Můžu ještě pod-otázku?

Když jsem vzal tvůj skript


#!/bin/bash

tty | logger
sleep 10s;
exit 0;


a spustil, tak ok.


Pokud jej ale upravím, že výstup tty nebude vypsán do logu


#!/bin/bash

tty
sleep 10s;
exit 0;


tak exit 0 mi neukončí skript, ale narozdíl od předchozího příkladu rovnou terminál ve kterém jsem jej spustil, Bude to nějaká banalita, tak sorry za hloupé otázky, ale nějak to nechápu.

jmp

  • Host
Re:jak spustit skript v "novém bashi" -- spuštění skriptu na pozadí.
« Odpověď #15 kdy: 24 Července 2012, 08:46:27 »
fajn, chápu. Můžu ještě pod-otázku?

Když jsem vzal tvůj skript


#!/bin/bash

tty | logger
sleep 10s;
exit 0;


a spustil, tak ok.


Pokud jej ale upravím, že výstup tty nebude vypsán do logu


#!/bin/bash

tty
sleep 10s;
exit 0;


tak exit 0 mi neukončí skript, ale narozdíl od předchozího příkladu rovnou terminál ve kterém jsem jej spustil, Bude to nějaká banalita, tak sorry za hloupé otázky, ale nějak to nechápu.
možná vás to překvapí, ale ten výpis do logu byl záměr (protože to jinak nepoznáte, v čem to vězí...)

 

Provoz zaštiťuje spolek OpenAlt.