Miért lő le minden folyamatot az Ubuntu egy desktopról indított terminal bezárásakor?
egyetlen sudo /etc/init.d/crasplan-t kellene elindítani egy szimpla scriptből. De amint bezáródik a gnome-terminal ablak egyből leáll a crashplan is.
Mit kell írni a scriptbe, hogy ne lője le a rendszer?
- 5816 megtekintés
Hozzászólások
screen /etc/init.d/crasplan
- A hozzászóláshoz be kell jelentkezni
sudo /etc/init.d/crasplan & -nel próbáltam háttérbe rakni.
De így sem jó:
[screen is terminating]
- A hozzászóláshoz be kell jelentkezni
Próbáld meg így: screen -d -m
- A hozzászóláshoz be kell jelentkezni
Úgy is próbáltam, plusz még -S kapcsolóval, hogy neve is legyen.
- A hozzászóláshoz be kell jelentkezni
Gondolom, SIGHUP-ot kap a gyermekfolyamat. Én így szoktam:
programom & exit
A másik lehetőség:
nohup programom </dev/null &>/dev/null &
aztán bezárhatod a terminált.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ha egy megnyitott terminálból indítom akkor jó, de ha desktop linkről majd 'futtatás terminálban' akkor ugyanúgy leáll a crashplan mint korábban.
- A hozzászóláshoz be kell jelentkezni
Nem tudom, mi ez, de muszáj terminálban futtatni?
Lehet, én elkezdeném debugolni, mi is történik. Például írnék egy olyan scriptet, amelynek a signal handler-ében file-ba tenném vagy zenity-vel a képernyőre feldobnám, milyen signalt kapott. Egyedül a SIGKILL ellen nem lehet így védekezni, de ezzel nyilván nem él az adott desktop környezet. Ha megvan, milyen signalt kell elkapni, akkor a rendes scriptbe bele kell írni, hogy arra immunis legyen.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Egyszerűen annyi, hogy nem akarjuk állandóan futtatni a crashplan-t és az időszakos backup sem megoldás, mert van amikor egész nap mehet máskor csak éjjel. Annál a gépnél ülő munkatársnak kell egy ikon a desktopra, ha nem dolgozik elinditja. Ha beirná egy terminálba, hogy
sudo /etc/init.d/crashplan start
akkor azzal problémamentesen elindulna, utána be is lehetne zárni a terminált, akkor nem áll le. De sajnos ennél a gépnél ülő munkatárs védőoltást kapott parancssor használata ellen.
- A hozzászóláshoz be kell jelentkezni
És mi történik, ha parancsikonnal indítod, de azt mondod neki, ne használjon hozzá terminált? (A desktop környezetnek ez egy tökéletesen haszontalan funkciója egyébként. Amihez kell terminál, arra is azt mondom, hogy nem kell, majd xfce4-terminal -e valami formában indítom. De neked még csak nem is kell terminál szerintem. Minek?)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Akkor még a sudo jelszót sem lehet beírni. Persze lehetne gksudo-t használni. Ki fogom próbálni.
Egy érdekesség:
Ha beirom a script végére, hogy
sleep 60
akkor egy percig működik a crashplan, utána leáll.
- A hozzászóláshoz be kell jelentkezni
Ebből az látszik, hogy a scriptből kilépéskor hal meg. Ezek szerint a crashplan szülője küldi - gondolom - a SIGHUP-ot. Tehát vagy a crashplant indítod nohuppal, vagy a scriptedet futtatod mindaddig, amíg ez a crashplan fut. Például percenként ránézel pgrep-pel. Ha benvan a process, újabb sleep 1m, ha nincs benn, akkor ki lehet lépni.
Mindenképpen megoldható, sok ötlet "elhangzott" itt, rajtad áll, hogyan csinálod.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nem használok gnome-t vagy mi fene van ubuntun, de gondolom ott is lehet az ikon tulajdonságainál beállítani, hogy futtatás más felhasználó nevében. Így nem kell terminál ablak, csak indításkor bekéri a jelszót, ha jól értelmeztem, hogy miért kell a terminál.
- A hozzászóláshoz be kell jelentkezni
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
További lehetőséget, hogy a scripted egy trap paranccsal elkapja a SIGHUP-ot, végrehajtásként nem csinál semmit, így nem fog elpusztulni, ha jön a HUP signal.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
disown
~~~~~~~~
Linux 3.2.0-4-486
Debian 7.1
- A hozzászóláshoz be kell jelentkezni
Vagy at now.
at now <<< parancs
- A hozzászóláshoz be kell jelentkezni
:)
- A hozzászóláshoz be kell jelentkezni
A mókás az, hogy windows alatt működik a legjobban :D
- A hozzászóláshoz be kell jelentkezni
Még egy tipp:
ikon parancsa:
sudo /usr/local/bin/starterszkript.sh
/usr/local/bin/starterszkript.sh tartalma:
echo /etc/init.d/crasplan | at now
- A hozzászóláshoz be kell jelentkezni
Ez a gnome-terminal helyes viselkedése...
Ha már Ubuntu: ALT+F2-t próbáltad már?
- A hozzászóláshoz be kell jelentkezni
Sajnos ennél a gépnél ülő munkatárs számára az ALT+F2 nem alternatíva.
- A hozzászóláshoz be kell jelentkezni
Sracok, alap UNIX:
Folyamat hatterben futtatasa:
process &
man bash:
" If a command is terminated by the control operator &, the shell exe-
cutes the command in the background in a subshell. The shell does not
wait for the command to finish, and the return status is 0. Commands
separated by a ; are executed sequentially; the shell waits for each
command to terminate in turn. The return status is the exit status of
the last command executed."
(De ezt megcsinalha a csh, zsh, ksh, barmi)
Vagy, ha nem akarod, hogy a hangupra halgasson:
nohup process
man nohup:
" The nohup utility invokes utility with its arguments and at this time
sets the signal SIGHUP to be ignored. If the standard output is a termi-
nal, the standard output is appended to the file nohup.out in the current
directory. If standard error is a terminal, it is directed to the same
place as the standard output."
- A hozzászóláshoz be kell jelentkezni
Ööö... Te olvasol is, vagy beéred az írás lehetőségével? ;)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ne szidd le, én is helyből az új hozzászólásra akartam kattintani, de aztán megembereltem magam, mondván hátha van más is aki az alapvető dolgok viselkedésével tisztában van, és nálam gyorsabb volt. (Bár az is tény, hogy láttam már olyan shellt is, amelyik a háttérprocesszt automatikusan nohup-pal indította - vagy kapcsolható volt? A franc se emlékszik ennyire pontosan.)
- A hozzászóláshoz be kell jelentkezni
Nem az volt a bajom, hogy válaszként vagy újként írja, hanem az, hogy ezekről már volt szó fentebb.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
ksh-ban (OpenBSD-ben biztosan) van egy "set nohup" parancs.
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni
"set -o nohup" lesz az, nem?
- A hozzászóláshoz be kell jelentkezni
Bocs, sajtóhiba. Igen, set -o nohup. Ha jól emlékszem, ezt megelőzően HPUX-on találkoztam vele... :D
Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)
- A hozzászóláshoz be kell jelentkezni