Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Stupidità in & :)

10 views
Skip to first unread message

writethem

unread,
May 20, 2008, 5:54:12 AM5/20/08
to
Ehm scusate la domanda stupida...

se
- entro in ssh
- eseguo un programma in background aggiungendo & alla fine
- esco da ssh

il programma smette di funzionare... ehm perchè? lanciandolo con &
finale non dovrebbe continuare anche ad utente disconnesso??

Stefano L.

unread,
May 20, 2008, 5:58:14 AM5/20/08
to

man nohup

--
Stefano L.

writethem

unread,
May 20, 2008, 6:08:51 AM5/20/08
to
grazie :)

Stefano L. ha scritto:
>
> man nohup
>

Message has been deleted

Stefano L.

unread,
May 20, 2008, 7:57:08 AM5/20/08
to
Romolo (was: Remolo) wrote:


> in Linux si usa: setsid <tuo_programma>
> Lascia perdere 'nohup' (diciamo che c'e' per compatibilita' Unix).

Io non direi che uno sostituisce l'altro.

Fanno due cose diverse, uno maschera l'hangup (e ridirige l'output !),
l'altro cambia il sessionid.

Uno dei risultati e' che il comando lanciato tramite essi non viene killato
chiudendo la sessione che lo ha lanciato, ma per motivi diversi.

--
Stefano L.

Antonio 6sette

unread,
May 20, 2008, 8:10:06 AM5/20/08
to
On 2008-05-20, writethem <""> wrote:
> grazie :)

usa screen ... in modo che fai il detach e poi, se in un secondo
momento vuoi controllare com'e' andata, fai il reattach ...

man screen

ciao ...

--
Never try to teach a pig to sing.
It wastes your time and annoys the pig.

Giovanni

unread,
May 20, 2008, 8:12:03 AM5/20/08
to

Perché il programma, pur girando in background, rimane associato al
terminale e disconnettendoti viene generato un SIGHUP al programma.

Se vuoi che si comporti come un demone (quindi senza associazione da
terminale) basta redirigere input ed output su di un file.

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 < http://giovanni.homelinux.net/ >

Micky

unread,
May 21, 2008, 6:42:36 AM5/21/08
to
writethem <""poiuuuu\"@the_google_mail(writethem).com"> writes:

> - entro in ssh
> - eseguo un programma in background aggiungendo & alla fine
> - esco da ssh
>

> il programma smette di funzionare... ehm perchč? lanciandolo con &


> finale non dovrebbe continuare anche ad utente disconnesso??

no, con la & lo mandi semlicemente in background, usa nohup o meglio
screen

Ciao, Micky
--
What's this hash prompt on my terminal mean?
Micky Del Favero - System Manager & BOFH

Message has been deleted
Message has been deleted

THe_ZiPMaN

unread,
May 22, 2008, 5:27:14 AM5/22/08
to
Micky wrote:
>> - entro in ssh
>> - eseguo un programma in background aggiungendo & alla fine
>> - esco da ssh
>>
>> il programma smette di funzionare... ehm perchč? lanciandolo con &
>> finale non dovrebbe continuare anche ad utente disconnesso??
>
> no, con la & lo mandi semlicemente in background, usa nohup o meglio
> screen


Alternativamente, se ormai lo si č lanciato e non lo si puň fermare (capita)

disown %1

man bash

--
Flavio Visentin

Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

Stefano L.

unread,
May 22, 2008, 11:47:15 AM5/22/08
to
Romolo (was: Remolo) wrote:

> nohup, su Linux, non serve assolutamente a niente.

E' bello avere delle certezze.

--
Stefano L.

Message has been deleted

Stefano L.

unread,
May 23, 2008, 2:56:58 AM5/23/08
to

>>> nohup, su Linux, non serve assolutamente a niente.
>>
>> E' bello avere delle certezze.
>
> ma non e' questione di certezza dai :)
>
> effettivamente ho sbagliato anche io ad essere categorico, dicendo:
> "nohup non serve a nulla"

Infatti, io lo trovo comodo quando mi devo connettere, una tantum, ad un
host remoto e eseguire un comando che so durera' molto tempo, ad esempio un
tar, e non voglio che si interrompa se cade la linea o chiudo per errore la
finestra.

[cut]

> Da un altra parte nohup.out puo' crescere a dismisura e se lo vuoi
> usare seriamente devi impostare una rotazione del file.

Sono pienamente d'accordo sul fatto che nohup sia inadatto all'uso in
procedure schedulate, e nemmeno vedo come potrebbe essermi utile in tali
circostanze.


> Pero', per il resto, *in pratica*, vengono utilizzati per fare la stessa
> identica cosa

Non sono del tutto d'accordo. La mancata interruzione del comando in caso di
chiusura della finestra e' solo una stessa conseguenza.

Come ho gia' detto non li considero uno il miglioramento dell'altro ma due
strumenti diversi per fare cose diverse.


> e pero' setsid non esiste su Unix ma solo su Linux.

Non so a che Unix ti riferisci. Come comando potra' anche non esistere, ma
come funzione di sistema esiste eccome.
Comunque non sara' certamente l'unico comando che esiste in Linux e non in
qualche Unix.

> Allora, perche' in Linux e' stato aggiunto setsid rispetto a Unix? Per
> usarlo o per non usarlo?

Per usarlo quando serve usarlo.

> Se lanci un browser, o una qualsiasi applicazione grafica, ti interessa
> guardare gli output?

Figurati se quando uso il browser guardo l'output !
Come tutti quanti lo faccio solo per consumere cicli di CPU e giro la testa
dall'altra parte. :)

> Spero di no, anche perche' lanciandolo da Gnome
> l'output non lo vedi lo stesso.

A parte gli scherzi, credo di aver capito cosa intendi.
Personalmente se lancio un'applicazione grafica da una shell e' proprio
perche' mi interessa vedere standard output ed error output e nohup non mi
serve, altrimenti la lancio dal menu di Kde/Gnome o quel che e'.


> Quindi in linea di massima, se devi usare una applicazione grafica, non
> te ne frega niente di seminare in giro nohup.out

Certo.



> Se dovrai lanciare qualcosa tipo demone, userai nohup,

Non ci penso nemmeno a usare nohup per un demone, non e' adatto !


> avendo pero' cura
> di controllare che il file di output non minacci la partizione del
> server ingrossandosi troppo.

--
Stefano L.

Giovanni

unread,
May 23, 2008, 3:48:05 AM5/23/08
to
On 05/22/08 18:11, Romolo (was: Remolo) wrote:

> Pero', per il resto, *in pratica*, vengono utilizzati per fare la

> stessa identica cosa, e pero' setsid non esiste su Unix ma solo su
> Linux.

Forse dovresti aggiornarre il tuo unix, visto che setsid() come system
call è standard da SysV e da una decina di anni è anche posix

> Allora, perche' in Linux e' stato aggiunto setsid rispetto a Unix?
> Per usarlo o per non usarlo?

Perché fa cose diverse da nohup e qualcuno ha pensato che potesse
essere utile ;-)

Message has been deleted
Message has been deleted

andrea

unread,
May 23, 2008, 7:27:30 AM5/23/08
to
Romolo (was: Remolo) ha scritto:

> Stefano L. wrote:
>
>>> Allora, perche' in Linux e' stato aggiunto setsid rispetto a Unix? Per
>>> usarlo o per non usarlo?
>> Per usarlo quando serve usarlo.
>>
>>
>
> si pero', ripeto, provaci: setsid <tuoprogramma>
> e poi: nohup <tuoprogramma> &
>
> e poi spiegatemi qual e' la differenza :)
>
> La differenza, in sostanza, e' che non dovrai cancellare un file che si
> chiama nohup.out
>
Io uso screen o al massimo
nohup <prog> & > /dev/null
(almeno a memoria) e non mi genera alcun file da cancellare..
Message has been deleted

Giovanni

unread,
May 23, 2008, 7:46:14 AM5/23/08
to
On 05/23/08 13:08, Romolo (was: Remolo) wrote:

>>> Allora, perche' in Linux e' stato aggiunto setsid rispetto a
>>> Unix? Per usarlo o per non usarlo?
>> Perché fa cose diverse da nohup e qualcuno ha pensato che potesse
>> essere utile ;-)
>

> Diciamo che in *pratica* fa la stessa cosa di nohup, senza crearti
> un file di log, che nel 99% dei casi non ti serve a nulla?

Non ho preferenze ne per l'uno ne per l'altro, specialmente se fanno
lo stesso servizio. Io in genere uso 'batch' che oltre tutto permette
di lanciare una serie di comandi che andranno in sequenza.

Quello che non ha senso è la tua affermazione che 'setsid' sia una
utility solo di linux visto che la system call è disponibile su tutti
gli unix. Se invece il programma 'setsid' non è disponibile su
solaris o su hpux è solo una scelta di chi prepara le release. O non
ha mai pensato fosse utile oppure pensava che qualsiasi utente unix
dovrebbe essere in grado di scrivere un simile semplice programma (20
linee di codice C inclusi i commenti).

Stefano L.

unread,
May 23, 2008, 8:26:36 AM5/23/08
to
Romolo (was: Remolo) wrote:

> Stefano L. wrote:
>
>>> Allora, perche' in Linux e' stato aggiunto setsid rispetto a Unix? Per
>>> usarlo o per non usarlo?
>>
>> Per usarlo quando serve usarlo.
>>
>>
>

> si pero', ripeto, provaci: setsid <tuoprogramma>
> e poi: nohup <tuoprogramma> &
>
> e poi spiegatemi qual e' la differenza :)
>
> La differenza, in sostanza, e' che non dovrai cancellare un file che si
> chiama nohup.out

Ti ho gia' detto quando trovo comodo usare nohup e quando non non lo userei
per nulla, la creazione di nohup.out mi sta bene e vado a vedere cosa c'e'
scritto dentro.

La differenza tra nokup e setsid e' sostanziale, se ti interessa capirla a
fondo puoi cominciare, ad esempio, con:

man 2 setsid man 2 setpgrp man 2 kill man 2 fork

guarda bene i concetti di process id, process group id, process group
leader :)

--
Stefano L.

Message has been deleted
Message has been deleted

Stefano L.

unread,
May 23, 2008, 9:07:13 AM5/23/08
to
Romolo (was: Remolo) wrote:

> Ritornando alla domanda principale di questo thread, qual e' la risposta
> piu' idonea?

La risposta piu' idonea, credo che ormai possa deciderla da solo writehem se
ha seguito e capito tutto quanto e' stato scritto.

Tra l'altro lui non ha mai parlato di programmi grafici ma di "programma in
background".

Cio che sostengo io, non e' che nohup sia la risposta piu' idonea, bensi'
che non e' vero che nohup sia stato sostituito da setsid e che quindi non
serva assolutamente a niente ma che, invece, sono semplicemente cose
diverse.


--
Stefano L.

Message has been deleted

writethem

unread,
May 23, 2008, 9:54:59 AM5/23/08
to
[supercut]

vi ringrazio per le risposte. personalmente ancora stento a cogliere le
differenze. cronologicamente ho letto prima nohup, l'ho provato e funziona.

mi basta così :))

writethem

unread,
May 23, 2008, 9:56:44 AM5/23/08
to
> Alternativamente, se ormai lo si è lanciato e non lo si può fermare (capita)
>
> disown %1
>
> man bash


ps -xa | grep programma
kill :)

0 new messages