style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

cómo correr un .jar como un "demonio" en linux.

Hola a todos..

Tengo un proyecto maven, que necesito que corra como un demonio, y que pueda responder a los métodos, iniciar(), parar(), principalmente.

He buscado información pero no he logrado hacerlo funcionar.

https://napster2011.wordpress.com/2012/02/20/ejecutar-aplicacion-java-co...

http://emont01.blogspot.com/2008/11/como-hacer-un-demonio-en-linux-usand...

Les agradezco desde ya por sus conocimientos.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Alternativas

Imagen de pechsclk

Problema similar

Bueno no se si sea lo mismo que tu problema RSanchezO , yo estoy terminando de realizar un sistema de activo fijo, Cliente - Servidor. a lo que voy es que el servidor lo estoy corriendo en linux, ubuntu 14.04, hasta ahora he hecho un instalador, asta ahi esta bien se instala pero que cren,
no me genera los reportes..

a lo que voy, el programa servidor esta ejecutandose en linux ubunto, ahi si lo ejecuto de manera normal se ejecuta bien pero no me genera unos reportes...
porque mis metodos estan de la siguiente forma, el cliente hace la peticion de un reporte, llega al servidor busca los datos en la base de datos, genera el reporte en un arreglo de bytes pero en pdf, le regresa ese arreglo de bytes al cliente, y este lo convierte en pdf.

bueno les decia, si ejecuto normal el programa servidor este nomas no me genera los reportes... lo tengo que ejecutar el jar desde la terminal como root, entonces si no hay problema genera los rerportes y se los regresa al cliente el que hiso la peticion..

yo quiisera saber como hacer eso para que al momento de ejecutar el programa instalado pues cargara bien...

ese mismo programa lo instalo en windows, sin problema genera los reportes...

tengo lo siguiente en mi

tengo lo siguiente en mi proyecto:

Esta es la clase que quiero que corra:

public class Servicio {

        private Thread objHebra;       
       
        private static Log objLog = LogFactory.getLog(Servicio.class);
       
        public void init(String []parameters){
                objLog.info("Init params "+ parameters.toString());

        }
       
        public void start(){

                this.Iniciar();
                objLog.info("start server life...");

        }
       

        public void stop()
        {
                if ((objHebra != null) && (objHebra.isAlive())) {
                        objHebra.interrupt();
                }
        }
       
        public void destroy()
        {
                if ((objHebra != null) && (objHebra.isAlive())) {
                        objHebra.interrupt();
                }

        }
               
        private void Iniciar()
        {              
                try {                  
                        objHebra = new Thread(new Ejecucion(1));
                        objHebra.start();
                       
                } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                }
        }
}

Este sería el "hilo" que corre:

public class Ejecucion implements Runnable {

        private int intIdServicio;
        private IMotorService objIMtServ;
        private IAgendamientoService objIAgService;

        public Ejecucion(int idServicio)
        {
                this.intIdServicio = idServicio;
        }

        public void run()
        {
                int intTiempoEsp = 1 * 10000; // valor a recuperar de un archivo propierties
               
                try {
                        intIdServicio = Integer.valueOf(AppGeneral.getPropertie(TipoAplicacion.API, "idServicioBatch"));
                } catch (FileNotFoundException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                }

                while (true) {
                        try {
                                Thread.sleep(intTiempoEsp);

                                objIMtServ.reconocimiento(intIdServicio);
                               
                                Thread.sleep(intTiempoEsp);
                                objIAgService.agendar();

                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }
}

Lo que no sé es cómo integrar con las API que mencionas ezamudio, será posible tener algún ejemplo??? intenté hacer esto
http://emont01.blogspot.com/2008/11/como-hacer-un-demonio-en-linux-usand...

pero no me funciona? debop tener un archivo de configuracion?

Imagen de Cid

Otro ejemplo igual y ayuda

Imagen de adrianaaae

Tal vez te sirvan

Tal vez te sirvan estos Links:

Para Windows alguna vez utilice un vbs para hacer correr una aplicación java sin interfaz (en segundo plano).

Espero te sirva.

Imagen de adrianaaae

Si lo que quieres es iniciar el proceso al inicio de sesión

muchas gracias...voy a ver

muchas gracias...voy a ver las alternativas y les cuento

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">