Альтернатива Perl для screen/tmux для мира UNIX?

Передайте -F (--format) опция к способности для определения, какие поля отображены.

aptitude --disable-columns -F '%p %v' search '~A'

Из Python используйте apt_pkg модуль от python-apt пакет.

5
16.01.2014, 11:51
3 ответа

perl может не быть самым соответствующим если IO::Pty модуль установлен.

Во-первых, возможно, Вам не нужно ничто сложное, если given-thing-that-takes-long-time (gtttlt) может работать хорошо с каналами.

mkfifo input
nohup gtttlt <> input > output 2>&1 &

запускаться gtttlt (вход от именованного канала, вывода в регулярный файл). Затем Вы присоединяете к нему с:

tail -f output & cat > input

Если бы каналы не сделают, и Вам нужен терминал, то Вы хотели бы использовать что-то, что может запустить псевдотерминал как expect, zsh zpty, perl IO::Pty или sshd:

mkfifo input
nohup ssh -tt localhost gtttlt <> input > output 2>&1

И присоединить:

stty raw -echo; tail -f output & cat > input

Обратите внимание, что это не похоже на реализацию screen или tmux. screen и tmux реализуйте эмулятор терминала. Когда Вы повторно прикрепляете, Вы видите содержание экрана того эмулятора терминала. Здесь, когда Вы повторно прикрепляете, Вы только видите последние 10 строк вывода (хотя можно корректироваться путем передачи a -n 123 опция к tail). И мы просто передаем все данные терминалу хоста.

11
27.01.2020, 20:33

Это не точно, что Вы попросили, но я использую at сделать это. Я часто запускаю команды на удаленных серверах от моего ноутбука и затем хочу завершить работу ноутбука, не теряя вывод команды. at позволяет мне запускать задания в установленный срок, и я просто перенаправляю потоки вывода задания и потоки сообщений об ошибках в файлы.

Например, если я хочу работать my_script.pl Я создам немного названного файла foo.txt со следующим содержанием:

my_script.pl > out 2>er

и затем выполненный это с

$ at now < foo.txt

Я могу затем выйти из системы сервер, забрать домой мой ноутбук и проверить вывод sshлуг к серверу и выполнению

$ tail -f er

или

$ tail -f out

Можно также дать at задания от его оболочки (поражает CtrlD для выхода):

$ at now
warning: commands will be executed using /bin/sh
at> my_script.pl > out 2>er
at> <EOT>
job 10 at Thu Sep  5 00:39:00 2013
2
27.01.2020, 20:33

Как альтернатива "в" предложении выше, мне нравится этот лучше:

  1. Запустите свой сценарий жемчуга как обычный "жемчуг script.pl"
  2. Сделайте материал взаимодействия с пользователем и войдите в часть, которая занимает много времени
  3. нажмите ctrl+z, чтобы поместить его в фоновом режиме и ввести "bg". Процесс работает теперь в tbe фоне
  4. выполненные "задания" для наблюдения то, что получило число процесс. Это по всей вероятности 1.
  5. выполненный "отрицают %1" для отсоединения проножки к текущему терминалу.
  6. Вас теперь в безопасности закрыть, терминал (введите "выход" или просто нажмите близкую кнопку),

Как дополнение, можно перенаправить вывод в файл или именованный канал. К сожалению, я не думаю, что существует способ подключить процесс снова к Вашему терминалу.

0
27.01.2020, 20:33

Теги

Похожие вопросы