Linux, как запустить скрипт в фоновом режиме на удаленном сервере?

Я на Linux-машине.

Я хотел бы запустить четыре сценария Perl на удаленном сервере. Каждый сценарий создает один выходной файл, но его выполнение может занять несколько часов. Я хотел бы запускать сценарии в фоновом режиме, чтобы, если я отключился от сервера или вышел из командной строки, он продолжил работу. Эти скрипты также выводят строки в командный терминал во время его работы. Я хотел бы иметь возможность проверить операторы print, которые сценарий выводит на командный терминал.

Обычно я использую команду screen -S для создания экрана. Затем нажмите CTRL+A CTRL+D для отключения и screen -r для повторного подключения к экрану, но на удаленном сервере, на котором я работаю, нет экрана. И у меня нет доступа sudo для его установки.

Как запустить эти 4 Perl-скрипта одновременно в фоновом режиме на удаленном сервере?


person cooldood3490    schedule 02.04.2013    source источник
comment
Просто мысль, но если экран отсутствует, возможно, ваш провайдер не хочет, чтобы вы оставляли длительные фоновые процессы в их системе. Можете ли вы работать с провайдером, чтобы установить его?   -  person Zoredache    schedule 03.04.2013
comment
nohup ‹script.sh› & ›› output.txt   -  person Display Name is missing    schedule 03.04.2013
comment
@better_use_mkstemp файлы script.pl уже печатаются в файл output.txt. Будет ли приведенная выше команда печатать командные строки, которые генерирует script.pl?   -  person cooldood3490    schedule 03.04.2013
comment
@ cooldood3490 Да, я верю, что это сработает. Скажем, ваш script.pl выводит строки в файл с именем output.txt. Если вы запустите «nohup ‹script.sh› & ›› output-terminal.txt», у вас также будет журнал всех строк команд печати. nohup предотвратит прерывание процесса при выходе из системы.   -  person Display Name is missing    schedule 03.04.2013


Ответы (1)


GNU screen — самый чистый способ. Вам не нужны права суперпользователя для установки локальной копии. Вы должны быть в состоянии загрузить исходники и сделать

tar -xzvf source.tar.gz
mkdir ~/local/
./configure -prefix=~/local/
make && make install

Это установит screen в ~/local/bin. Однако, если некоторые зависимости отсутствуют, вам придется сделать это для каждой из них.

person jman    schedule 02.04.2013
comment
эти команды, кажется, не работают для меня. какие именно команды мне нужно ввести? Похоже, мне нужно скомпилировать из исходников? Вы можете опубликовать шаги, чтобы сделать это? - person cooldood3490; 03.04.2013
comment
Я предполагаю, что вы используете основной дистрибутив, почему бы просто не использовать менеджер пакетов? - person kjprice; 03.04.2013
comment
Это точные команды. Загрузите исходники экрана gnu и замените source.tar.gz в моей инструкции на имя скачанного файла. - person jman; 03.04.2013
comment
@kjprice у него нет прав администратора. - person jman; 03.04.2013