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