Разрешение процессам, запущенным через ssh, продолжить и записать вывод в файл

Так что это вопрос, состоящий из нескольких частей, у меня есть vps, к которому я подключаюсь через ssh для запуска нескольких процессов.

Я хотел бы иметь возможность запускать процессы и закрывать окно терминала, но при этом иметь возможность вернуться в ssh и проверить процессы.

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

Как мне лучше всего достичь этой цели?

1 ответ

Есть несколько способов достижения этого, но вот некоторые из основных:

экран

screen позволяет создать виртуальную консоль, отсоединить ее от вашего tty (CTRLA и CTRLD) и прикрепить ее обратно (screen -rв любое время.

поЬир

nohup это программа, которая позволяет вам запускать команды, которые будут игнорировать любой сигнал зависания и записывать вывод команды в nohup.out файл в cwd, На практике работает следующая командная мысль ssh а затем выход из системы будет продолжать работать процесс nohup dd if=/dev/random of=/dev/null &,

тройник

tee Команда в очень простом использовании работает как вилка, которая пишет это stdin в файл и в stdout simulateously. В вашем случае это было бы ls -alh | tee 'ls', Если вы также хотите написать stderr подать приложение 2&>1 (что означает "перенаправление stderr в stdout") к вашей базовой команде.

Комбинируя эти решения, вы сможете достичь того, чего хотите. Вы также можете увидеть аналогичный ответ: 8703001/1732775.

Другие вопросы по тегам