Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Nohup не работает  (Прочитано 1287 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Обедающий философ

  • Автор темы
  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
    • Искусственная жизнь по-русски
Nohup не работает
« : 07 Февраля 2021, 16:21:22 »
Здравствуйте!

Повсюду пишут, что nohup должен выполнять программу вне зависимости от того, что происходит с терминалом, из которого он запущен. Однако ж я запускаю сервер

nohup ./run.sh &
и покуда терминал открыт, сервер работает, а как закрываю терминал - так сразу перестаёт работать. Как так-то?

Заранее благодарен.
Боится смерти тот, кто мало сделал за свою жизнь. /Фидель Кастро/

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Nohup не работает
« Ответ #1 : 07 Февраля 2021, 16:38:25 »
Всюда, это где? А то в man написано такое.
NAME
       nohup - run a command immune to hangups, with output to a non-tty
DESCRIPTION
       Run COMMAND, ignoring hangup signals.
       NOTE: your shell may have its own version of nohup, which usually supersedes the version described here.  Please refer to your shell's documentation for details about the options it supports.
Защитой от зависаний и выводом результатов не в консоль. О том что после закрытия сессии все будет работать - не написано. Для того, что бы работало "всегда" надо запускать сервисом
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Nohup не работает
« Ответ #2 : 07 Февраля 2021, 16:44:20 »
./run.sh & disown
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: Nohup не работает
« Ответ #3 : 07 Февраля 2021, 21:53:30 »
А я вот не знаю, что такое disown. Ещё есть вариант сделать программу демоном, в книге Робачевского это подробно описано.
Пётр.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Nohup не работает
« Ответ #4 : 08 Февраля 2021, 01:57:46 »
А я вот не знаю, что такое disown

Цитировать
Команда disown является встроенной командой таких командных оболочек, как Bash, Zsh и Ksh и позволяет убрать заданную задачу из таблицы задач командной оболочки. Это делается для того заблокировать отправку системного сигнала SIGHUP запущенному с помощью командной оболочки и исполняющемуся в фоновом режиме процессу при завершении работы командной оболочки. В отличие от команды nohup, рассматриваемая команда может использоваться в любой момент после создания задачи, а не до только при ее создании и не отсоединяет стандартные потоки ввода, вывода и ошибок исполняющегося процесса от командной оболочки.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: Nohup не работает
« Ответ #5 : 08 Февраля 2021, 08:24:37 »
Да, посмотрел "man bash", нашёл там disown. Но, если оболочка завершилась, куда же пойдут stdout и stderr?
Тут ведь лучще демон?
Пётр.

 

Страница сгенерирована за 0.07 секунд. Запросов: 26.