Fórum Root.cz
Hlavní témata => Software => Téma založeno: Pali 02. 09. 2011, 21:19:29
-
Existuje nejake riesenie ako spustit lubovolny program tak by nic na konzolu nevypisal a pracoval na pozadi?
riesenie typu presmerovat mu stdout a stderr do /dev/null a spravit fork() nefunguje ak program si otvori /dev/tty a zacne do nho zapisovat...
-
Stačí na koniec príkazového riadku pridať & (prinajmenšom to tak funguje na kombinácii FreeBSD a tcsh)
-
man nohup
-
& iba spravi bashi fork. nohup nefunguje. Skus si sputit toto (aj tak to 'a' vypise na konzolu):
$ nohup sh -c "echo a > /dev/tty"
-
mohlo by stacit spustit program pomocou "setsid", ktory otvori novu session bez tty a spusti v nej program
-
dik, o setsid som nevedl. takze ak fd 1 a 2 (defaulne je to nastavene na pts) poslem do /dev/null a spustim setsid tak uz /dev/stdin /dev/stdout a ani /dev/tty nefunguje...
prave sa pozeram z do /dev/pts/<daco> moze zapisovat lubovolny proces spusteny pod uzivatelom komu ten pts patri. Da sa to nejak zamedzit?
-
hej, spustit program pod inym uzivatelom ;-)
-
Podle mne :
nejakyprogram 2> /dev/null 1> /dev/null &
posle chybove hlasky do cerne diry
posle normalni hlasky do cerne diry
a spusti program na pozadi &
-
nejakyprogram >& /dev/null &
-
to ale asi bash nezkousne :(
-
Ale zkousne drobnou obměnu
nejakyprogram &> /dev/null
-
to ale asi bash nezkousne :(
A to jako proč?
-
Podle mne :
nejakyprogram 2> /dev/null 1> /dev/null &
posle chybove hlasky do cerne diry
posle normalni hlasky do cerne diry
a spusti program na pozadi &
nefunguje. pozri moj protipriklad, hned zo zaciatku (vypise to aj tak 'a'):
$ sh -c "echo a > /dev/tty" 2> /dev/null 1> /dev/null &
Treba k tomu este setsid, teda takto:
$ setsid sh -c "echo a > /dev/tty" 2> /dev/null 1> /dev/null