LINUX.ORG.RU

Как разлогиниться, но оставить программу выполняться?


0

0

Я зашел в машину по ssh и запустил на выполнение «долгоиграющий» скрипт.

Правильно, ведь если я закрою ssh, то скрипт будет остановлен?

Тогда как мне сделать, чтобы я мог выйти, а скрипт продолжал работать?

Скрипт представляет собой программу на Перле, которая запускает кучу других скриптов на других языка, например, на Питоне, а так же екзешников

Система Fedora 12

если в фоне, то можно запустить через nohup

nohup программа аргументы &

если интерактивное - screen

Sylvia ★★★★★ ()
Ответ на: комментарий от Sylvia

>а так же екзешников

если там что-то требующее x11 , то tightvnc (или другой аналог самостоятельного vnc сервера)

Sylvia ★★★★★ ()
Ответ на: комментарий от AITap

Нееет, я имел в виду линуксовые бинарники.

Ничего оконного никакая из подпрограмм не использует, иксы вообще не запущены.

Dims2000 ()
Ответ на: комментарий от Dims2000

процесс будет _остановлен_ и отправлен в фон

т.е. выполнение его будет поставлено на паузу

Sylvia ★★★★★ ()
Ответ на: комментарий от Dims2000

Обратите внимание, что правильным будет disown, а не detach (в предыдущем сообщении я ошибся).

Можно посмотреть на этот perl-скрипт? Тогда можно будет точнее сказать, что станет с порождёнными процессами.

AITap ★★★★★ ()
Ответ на: комментарий от AITap

Вот такой:

date
#export PYTHONPATH=/usr/local/lib64/python2.4/site-packages/ # not required since caller is responsible
time python ./g2p.py --train train.lex --devel 5% --write-model model-1 --resource-usage --result=model-1-results
time python ./g2p.py --model model-1 --ramp-up --train train.lex --devel 5% --write-model model-2 --resource-usage --result=model-2-results
time python ./g2p.py --model model-2 --ramp-up --train train.lex --devel 5% --write-model model-3 --resource-usage --result=model-3-results
time python ./g2p.py --model model-3 --ramp-up --train train.lex --devel 5% --write-model model-4 --resource-usage --result=model-4-results
time python ./g2p.py --model model-4 --ramp-up --train train.lex --devel 5% --write-model model-5 --resource-usage --result=model-5-results
time python ./g2p.py --model model-5 --ramp-up --train train.lex --devel 5% --write-model model-6 --resource-usage --result=model-6-results
date


Но это бессмысленно. g2p.py — это сложный скрипт на питоне, который, в свою очередь, тоже вызывает невесть что. Если от того, как происходит вызов, зависит выживание процесса, то я просто не буду отправлять его в бэкграунд. Зачем рисковать?

Dims2000 ()
Ответ на: комментарий от Dims2000

Скачай и установи screen да и всё, ИМХО наиболее удобно. можно иметь много сессий, подключаться-отключаться к ним довольно удобно.

Gordon01 ★★ ()
Ответ на: комментарий от Dims2000

Эм... это не perl, а shell-скрипт.

Скорее всего, с процессами ничего не случится.

Рекомендую поставить screen и прочитать man screen. Очень удобно как в таких ситуациях, так и в повседневном использовании. Могу поделиться своим .screenrc.

AITap ★★★★★ ()
Ответ на: комментарий от Dims2000

Процессы могут начать вести себя невменяемо, если им необходим интерактивный терминал.

^Z «останавливает» всё дерево процессов.

AITap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.