Screen в фоне

SSH. Запуск процесса в фоне.
Не совсем уж для новичков, но вот недавно очень пригодилось клиенту одному, дак почему бы не поделиться и здесь…

Запуск процесса в фоне.

Описанное ниже, полезно при работе по ssh на медленном соединении с обрывами (например, необходимо заархивировать что-то большое или очень много файлов скопировать, а консоль держать открытой не хочется):

1) Для начала проверим установлен ли screen, вводим команду
Код:

 # screen -v

Если получаем что-то похожее на приведённое ниже, то пункт два пропускаем.
Код:

 
# screen -v 
Screen version 4.01.00devel (GNU) 2-May-06

2) Если появляется сообщение о том что команда не найдена, тогда необходимо произвести установку:
Код:

# Для CentOS, RH, SL, Fedora и прочих краснойшапке подобных:

 # yum install screen

# Для DebianUbuntu подобных:

 # apt-get install screen

3) Ну и, собственно сам запуск процесса.

Вводим команду
Код:

 # screen

Далее вводим нужную нам команду, я, например, хочу заархивировать очень большое количество файлов
Код:

 # zip -r mnogofilov-100500gigov.zip /home/files

Оставляем процесс работать, а сами нажимаем Ctrl+A, затем d. Получим примерно следующее…
Код:

 [detached from 3053.pts-0.blahblah]

Собственно, на этом всё. Можем спокойно отключаться от консоли, наш процесс не прервётся и продолжит своё выполнение. Если к процессу потребуется вернуться, то делаем следующее…

– Соединяемся по ssh и вводим команду screen -list, получив примерно такой результат:
Код:

screen -list
There is a screen on:
3053.pts-0.blahblah (Detached)
1 Socket in /var/run/screen/S-blah.

Это список всего что запущено в фоне.
3053.pts-0.blahblah – это как раз таки наш ранее запущенный и оставленный работать screen, войти в него можно при помощи команды
Код:

 # screen -r 3053.pts-0.blahblah

Что бы screen запускался при входе, нужно в ~/.bashrc в конце добавить
Код:

if [ -z "$STY" ]; then
                    exec screen -R
                        fi