Si encuentras alguna parte que no comprendes puedes dejarlo en los comentarios y te responderemos tan rápido como podamos.
Solución:
De hecho, encontré una manera mucho mejor de hacerlo mediante el uso de scripts de Ruby.
Así es como lo hice:
En primer lugar, instalé daemon
gem install daemons
Entonces hice:
require 'rubygems'
require 'daemons'
pwd = File.dirname(File.expand_path(__FILE__))
file = pwd + '/runner.rb'
Daemons.run_proc(
'my_project', # name of daemon
:log_output => true
) do
exec "ruby #file"
end
Luego creo un archivo llamado runner.rb, en el que puedo llamar a mis scripts como:
require "/var/www/rails/my_project/config/environment"
Post.send('details....')
¡Daemons es una gran joya!
RAA – deamons es una herramienta muy útil para crear demonios Unix a partir de scripts Ruby.
Publicando mi respuesta después de más de una década, el póster original hizo la pregunta.
Primero, creemos un script Ruby simple, que ejecutará un ciclo infinito:
# mydaemon.rb
$stdout.reopen('/home/rmishra/mydaemon.log', 'a')
$stdout.sync = true
loop.with_index do |_, i|
puts i
sleep(3)
end
Puede ejecutar la secuencia de comandos en segundo plano agregando el signo ampersand:
/home/rmishra$ ruby mydaemon.rb &
[1] *pid*
Para iniciar este script automáticamente y reiniciarlo cada vez que se detuvo o se bloqueó, crearemos un servicio.
# mydaemon.service
[Unit]
Description=Simple supervisor
[Service]
User=username
Group=username
WorkingDirectory=/home/username
Restart=always
ExecStart=/usr/bin/ruby mydaemon.rb
[Install]
WantedBy=multi-user.target
Ahora, copiemos este archivo de servicio al directorio systemd:
sudo cp mydaemon.service /lib/systemd/system -v
Finalmente, utilice el enable
Comando para asegurarse de que el servicio se inicia cada vez que se inicia el sistema:
sudo systemctl enable mydaemon.service
El servicio se puede iniciar, detener o reiniciar utilizando estándar systemd
comandos:
sudo systemctl status mydaemon
sudo systemctl start mydaemon
sudo systemctl stop mydaemon
sudo systemctl restart mydaemon
Fuente
Aquí puedes ver las reseñas y valoraciones de los lectores
Acuérdate de que te brindamos la opción de decir si te fue de ayuda.