Разрешение процессам, запущенным через 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.