Najdi forum

Procesi v ozadju

Spet jst z enim ekzotičnim vprašanjem. Mogoče mi bo klemenxx, ali kdo od ostalih veteranov znal pomagat.

Recimo, da se preko terminala povežem z eno oddaljeno mašino z unixom, na njej zaženem nek proces, recimo FTP clienta, potem pa se odjavim iz sistema. Kako bi se dalo uštimat, da bi ta proces še vedno tekel, tudi če nisem več prijavljen v shellu in da bi se kasneje, ob naslednji prijavi lahko nazaj povezal z njim?

Klasično dajanje programov v ozadje ne šiba.
Kdo bi znal?

Hvala in lp..

Živjo,

no lepo, da ima še kdo kakšna egzotična vprašanja, ki so daleč stran od
ostlaih in prav z veseljem odgovorim nanje, torej
pri Linuxu jaz naredim nekaj podobnega kot:

nohup komanda_ki_naj_se_izvrši_v_ozadju &

Potem nastane v (mislim da v home direktoriju od uporabnika) datoteka z imenom nohup.out v katero se zapisuje vse, kar sicer proces piše na ekran,
datoteko pa lahko gledaš kar z ukazom more nohup.out

Za recimo ftp klienta pa jaz kar vse ukaze napišem v datoteko .netrc

potem pa samo startam ukaz:

nohup ftp http://ftp.softraja.com &
pa lepo v ozadju sistem downloada, ali uploada neke podatke

Seveda se lahko odlogiraš iz sistema, saj je ravno temu namenjen ukaz nohup.

Lahko pa seveda izkoristiš npr. cron ki tudi zna marsikaj.. Mah v Linux je tega neomejeno..

lp

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Najprej hvala za odgovor..

V bistvu sem si o nohup-u že prej nekaj prebral, samo to ni ravno to kar potrebujem.

V bistvu bi rad proces spravil v ozadje šele potem, ko v njem vse določim kaj naj počne naslednjih 5 dni:) Za ftp navadno uporabljam kar midnight commander, ker je enostavnejši, in ga spravim v ozadje s , nazaj pa prikličen z npr. %1. Pri nohup-u to nažalost ni možno:( Tore, zanima me ta varianta. Nevem, mogoče obstaja kak logout ukaz, ki sistem prepriča, da je uporabnik še vedno prijavljen v sistem in s tem se tudi proces normalno izvaja naprej?

Drugače vseeno hvala.. Obstaja še vedno nohup kot zdnja možnost.

lp

V bistvu bi rad proces spravil v ozadje šele potem, ko v njem vse določim kaj naj počne naslednjih 5 dni.

Ne to lahko narediš preko skript, ali kako drugače – povej recimo čist konkreten primer..

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Eko, tko gre ta stvar…
preko ssh-ja se prijavim na streznik tadej.no-ip.org
user: test
passwd: test

poženem mc in se z njim povežem na poljuben ftp strežnik in izberem par datotek za downanje čez noč. Ker je ta strežnik v drugem prostoru, lahko tačas mirno spim brez keke posebne protihrupne zaščite. Računalnik, s katerim sem se povezal na strežnik je pa v sobi, zato ga ugasnem (prekine se tudi ssh povezava s strežnikom). Drugi dan pričakujem na strežniku 5 GB iso datotek.. To bi bilo to..

Ja ok, ampak v tem primeru si pač izberi drugi ftp klient, na žalost pa za tolelelelellele mc ni primeren.

Poglej si tegaklelelelelle

LSM entry:
Begin3
Title: LFTP command line file transfer program
Version: 2.4.0
Entered-date: 2001-07-30
Description: LFTP is a shell-like command line ftp client. It is
reliable: can retry operations and does reget automatically.
It can do several transfers simultaneously in background.
You can start a transfer in background and continue browsing
the ftp site or another one. This all is done in one process.
Background jobs will be completed in nohup mode if you exit
or close modem connection. Lftp has reput, mirror, reverse
mirror among its features. Since version 2.0 it also supports
http protocol. Other features include: ipv6 support, context
sensitive completion, output redirection to files or to pipe,
SOCKS support (configure option), ftp and http proxy support,
transfer rate throttling for each connection and for all
connections in sum, job queueing, job execution at specified
time, opie/skey support in ftp protocol, ssl for http and ftp.
Keywords: ftp client, readline, reliable, background, parallel, http
Author: lav@yars.free.net (Alexander V. Lukyanov)
Maintained-by: lav@yars.free.net (Alexander V. Lukyanov)
Primary-site: http://ftp.yars.free.net /pub/software/unix/net/ftp/client/lftp
1171 kB lftp-pre2.3.10.tar.gz
Alternate-site: metalab.unc.edu /pub/Linux/system/network/file-transfer
Platforms: Unix, G++
Copying-policy: GNU GPL
End

LFTP has a web page at

lp

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Nekaj bo, ja.. Je tudi ta način enostaven, mu napišeš ukaze v datoteko in lepo dela.. nohup ./lftp &

Hvala!

lp

Potrebuješ t.i. screen

Enostavna uporaba screen-a za tvoje potrebe:
Ko se prvič prijaviš napišeš:
– screen v shelu in te da v en drugi shell
– delaš kar te je volja
– ko kočnaš stisneš Ctrl-A-D, (ti napiše [detached]) se odklopiš iz tistega shella in se vrneš v prvotnega (pred komando screen)
– in potem exit, da prekineš ssh povezavo.

Tisti shell v screenu ti ostane nedotanknjen in ko naslednjič greš gor, samo “screen -r” v shellu napisi po prijavi, pa si nazaj v sliki – in to je to.

Če se mašina ne bo rebootal, ti bo session ostal, in vedno ko greš ven, samo Ctrl-A-D (ti napiše [detached] )
Lahko imaš več shellov, med njimi preklapljaš … poglej si man screen.
Aja če screen ni nameščen, ga namesti, je en od standardnih paketov.
Komplikacije s cronom, at , nohup opcijami in podobnim, se mi zdijo za tvoj problem preveč komplicirane.

Če znaš uporabljat VNC pa lahko imaš grafični terminal ves čas odprt, sliko pa vidiš samo ko se priklopiš s klientom gor (podobno kot screen, samo v X-ih). Samo ni tako varno (če maš server doma, pa kak firewall, je ok, ali pa preko ssh tunela greš gor, je tudi ok). Samo je fajn met koliko-toliko dobro linijo. Pol pa daš Azureus gor pa gasa po bittorentu.

LP …

OK, hvala ti za to, bom poskusil. Drugače pa obstajajo načini kako VNC startati s pomočjo ssh-ja, da je zadeva varna.

lp

Ja, obstajajo. Poglej si malo v VNC help. VNC over ssh. Kako skonfiguriraš ssh, da potem zalaufaš VNC kao samo lokalno, v bistvu pa gre prek tunela, ki je kriptiran do oddaljene mašine. Samo ne vem, če ti bo delalo iz Windows okolja.
So pa še druge možnosti (npr. VPN).
Nisi pa napisal ali je ta oddaljen rač. mogoče na tvoji lokalni mreži ali je dejansko oddaljen. Če je v lokalni mreži lahko greš preko VNC brez kompliciranja s ssh, saj tveganje je ravno zaradi prenosa, ki ni kriptiran (snifanje gesel). Če delaš lokalno doma, ti verjetno ne bo nihče snifal mreže (mogoče mlajši brat).

Če rabiš samo text dostop je screen zakon in bo delalo b.p., samo tako naredi kot sem ti napisal.

Lep pozdrav

Vem, da se da z VNC-jem marsikaj napravit, samo na žalost na serverju nimam inštaliranega grafičnega vmesnika, tako da to odpade. Poskušal bom screen, drugače pa mi zadostuje že nohup.

Hvala..

lp, tadej

Forum je zaprt za komentiranje.

New Report

Close