Подтвердить что ты не робот

Запустите команду в оболочке и продолжайте выполнение команды при закрытии сеанса

Я использую Putty для подключения к удаленному серверу. Я хочу знать, есть ли способ написать мои команды и позволить им продолжать работать после закрытия сеанса с помощью Putty. Причина этого в том, что я не хочу постоянно держать компьютер включенным. Есть ли способ сделать это?

Обновить с помощью решения

Для моего вопроса, как представляется, лучшим решением является использование одной из команд, таких как nohup, потому что вам не нужно устанавливать какое-либо дополнительное программное обеспечение. Но если вы используете одну и ту же проблему, используйте экран, установите его и используйте. Удивительно.

Я выбрал ответ Нормана Рэмси как фаворит, потому что предлагаю несколько решений с помощью команд и экрана. Но, пожалуйста, проверьте другие ответы, особенно на PEZ, затем вы получите представление о том, что экран способен делать.

4b9b3361

Ответ 1

nohup, disown и screen все хороши, но screen является лучшим, потому что в отличие от двух других screen позволяет вам отключиться от удаленного сервера, сохранить все работает, а затем снова подключиться позже, чтобы увидеть, что происходит. С nohup и disown вы не можете возобновить взаимодействие.

Ответ 2

экран! Это лучшая вещь, поскольку нарезанный хлеб. (Да, я знаю, что другие уже предложили это, но это так хорошо, что весь мир должен присоединиться и предложить его тоже.)

экран похож на, например, ummmm... например, используя VNC или тому подобное, чтобы подключиться к графическому интерфейсу, но для окон командной оболочки. Вы можете сразу открыть несколько окон "окна" на одном сеансе экрана. Вы можете делать такие вещи, как:

  • Запустите сеанс экранов, используя "screen -dR" (привыкнуть к использованию -dR)
    • запустить несколько команд в одном окне
    • нажмите CTRL - A, C, чтобы создать новое окно, открыв там файл vim
    • нажмите CTRL - A, 0, чтобы вернуться в первое окно и выдать некоторую команду только что отредактированному файлу
    • CTRL - A, 1, чтобы вернуться на сеанс vim.
    • CTRL - A, C для еще одного окна и, возможно, "sudo-su" (потому что вам просто нужна полная корневая оболочка)
    • CTRL - A, 0 и запустите фоновый процесс.
    • CTRL - A, C, чтобы создать еще новое окно, "tail -f" для этого фонового процесса
    • CTRL - A, d, чтобы отключить ваш экран, затем CTRL - d, чтобы отключиться от сервера.
    • Отправляйтесь в отпуск на три недели.
    • Войдите в систему еще раз и выпустите "screen -dR" для подключения к существующему сеансу экрана.
    • проверьте журнал в четвертом окне с помощью CTRL - A, 3 (он, как и вы, наблюдал за ним все время)
    • CTRL - A, 1, чтобы снова забрать сеанс vim.
    • Наверное, ты начинаешь получать картину сейчас? =)

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

РЕДАКТИРОВАТЬ: просто хочу отметить, что теперь есть также tmux. Очень нравится экран, но имеет некоторые уникальные функции, разбивая окна, которые являются наиболее заметными.

Ответ 3

Попробуйте использовать экран GNU. Это позволяет сразу открыть несколько оболочек. И вы можете отключиться от тех запущенных оболочек (т.е. Закрыть сеанс с Putty), и они будут продолжать делать свое дело.

Ответ 4

То, что вы ищете, это nohup.

См. ссылку на wiki, как ее использовать.

Ответ 5

лучший экран.

Try:

screen -dmS "MyTail" tail -f/var/log/syslog

Эта команда запуска в фоновом режиме.

Используйте экран -r для отображения и/или экрана -r Mytail для входа в сеанс.

Если пользователям больше требуется доступ к одному сеансу, используйте: screen -rx MyTail, и обе или более пользователи используют сеанс.

Ответ 6

Если вы не можете использовать screen (потому что, например, ваш сеанс SSH программируется), вы также можете использовать daemonize для запуска программы в качестве демона.

Ответ 7

Один из способов, который хорошо работает для меня, - at.

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

например:

$ at 23:55
at> wget http://file.to.download.com/bigfile.iso
at> ^D  

Вы передаете at время (в будущем), и оно дает вам подсказку. Вы вводите команды, которые хотите запустить в это время, и нажмите ctrl + d. Вы можете выйти из сеанса и запустить команды в указанное время.

Wikipedia имеет дополнительную информацию о at.

Ответ 8

./command & disown

Ответ 9

ssh localhost && ./command && exit