Quiero iniciar un programa C en segundo plano desde la terminal. El programa actúa como un controlador bluetooth, lo que significa que debe permanecer abierto mientras el sistema está en ejecución. Lo intenté con nohup y start-stop-daemon, pero en ambos casos el programa c recibe el comando de salida y se cierra.
¿Cómo puedo iniciar un programa en C desde una terminal que luego se ejecuta en segundo plano? Quiero iniciarlo y luego poder cerrar la terminal en la interfaz gráfica de usuario (mientras el programa c iniciado sigue ejecutándose felizmente).
¡Gracias!
Respuesta1
Parece que el programa necesita una terminal de control para ejecutarse (puede averiguarlo strace
si no tiene el código fuente).
Puede proporcionar al programa una terminal de control (incluso cuando lo inicia como parte del inicio del sistema) ejecutándolo a través de screen
(ot tmux
).
screen cmd arg1 arg2
Respuesta2
Creo que para demonizar completamente un programa, harías
nohup the_command args ... </dev/null >/dev/null 2>/dev/null &
disown
Dependiendo de su sistema, debería considerar iniciarlo al inicio del sistema usando upstart o init o algo así.