фоновый / демон процесс - PullRequest
3 голосов
/ 27 марта 2011

У меня есть скрипт, который закодирован следующим образом. Я хочу запустить это как фоновый процесс / демон, однако, как только я запускаю сценарий, если затем я закрываю окно терминала, оно запускается из программы и завершается. Что мне нужно сделать, чтобы программа работала

loop do

  pid = fork do
    ..........
    ..........
    ..........
  end

  Process.detach(pid)
end

Ответы [ 3 ]

9 голосов
/ 24 мая 2011

Все приведенные выше ответы не показывают, насколько легко это сделать:

# Daemonize the process and stay in the current directory
Process.daemon(true)

loop do
  pid = Process.fork do
    # Do something funky
  end

  Process.waitpid(pid)

  # Reduce CPU usage
  sleep(0.1)
end
2 голосов
/ 13 июня 2012

На этот вопрос подробно был дан ответ на этот вопрос stackoverflow: Создание демона с двойным форком в Ruby

В противном случае есть несколько гемов, которые помогут абстрагировать это отваш код и, в частности, вы можете взглянуть на Raad (Ruby as Daemon) https://github.com/colinsurprenant/raad, который также будет работать с кодом JRuby (я являюсь автором Raad).

1 голос
/ 27 марта 2011

человек нохуп
nohup - запустить команду, невосприимчивую к зависаниям, с выводом не-tty

команда $ nohup> вывод &

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...