múltiples procesos con ProcessBuilder

usuario4559332

Tengo un programa que se usa ProcessBuilderpara ejecutar un programa diferente. Mi código se ve así:

public class runMultiClient {
public static void main(String[] args){
    if (args[0].matches("-f")){
        String dir = System.getProperty("user.dir");
        String path = dir + "\\" + args[1];
        FileReader fr;
        try {
            fr = new FileReader(path);
            BufferedReader bf = new BufferedReader(fr);

            String line = "";
            Process PR = null;
            while ((line = bf.readLine()) != null){
                String[] tk = line.split(" ");
                String[] cmd = {"javaw", "-jar", "ntripClient.jar", "-a", tk[0], "-p", tk[1],
                        "-u", tk[2], "-pw", tk[3], "-m", tk[4], "-t", tk[5], "-s", tk[6]};
                ProcessBuilder pb = new ProcessBuilder(cmd);
                PR = pb.start();
            }
            PR.waitFor();
        } 
        catch (FileNotFoundException ex) {ex.printStackTrace();} 
        catch (IOException ex) {ex.printStackTrace();} 
        catch (InterruptedException ex) {ex.printStackTrace();}
    }
}}

Ejecuto este programa desde cmd. Excepto un nombre para el archivo de inicio que contiene datos en cada fila. En base a este archivo se supone que se crean varios procesos.

Sin embargo, no funciona sin problemas. En este momento tengo 2 filas en el archivo de inicio, lo que significa que deberían haberse iniciado dos procesos. Lo que realmente hizo fue iniciar el primer proceso, luego lo detuvo y comenzó el segundo en su lugar. Otro problema es que no sé cómo finalizar el proceso, parece que se está ejecutando en segundo plano y no aparece en el administrador de tareas. Crtl+ Cy Ctrl+ Breakno funcionan.

El objetivo principal es ejecutar varios procesos al mismo tiempo y poder interrumpir el proceso cuando sea necesario. ¿Qué me estoy perdiendo? ¿Cómo soluciono este problema? Cualquier ayuda sería apreciada.

Joe c

Sin poder reproducir esto (por falta del JAR del sujeto), probablemente esté sucediendo una de tres cosas:

  • Los procesos son de corta duración y desaparecen después de un corto tiempo (supongo que ese no es el caso dada la redacción de su pregunta), o
  • Los procesos no se están iniciando correctamente para empezar, o
  • Los procesos secundarios están muriendo cuando el proceso principal llega al final de su método principal

Algunas cosas para probar:

  • pb.start () devolverá un objeto de proceso . Una vez que todos sus procesos estén activos, haga que su método principal espere a que uno (o todos) termine y vea si los niños todavía están vivos.
  • Verifique que no tenga excepciones en los registros. El uso de printStackTrace en lugar de System.out.println podría facilitarle la detección.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Workmanager con múltiples procesos

Workmanager con múltiples procesos

Múltiples procesos con vfork ()

Generando múltiples procesos con Python

Lista de procesos de elementos 'N' con múltiples subprocesos

Problemas de conexión con SQLAlchemy y múltiples procesos

Htop mostrando múltiples procesos java con diferentes pids

Trabajar con objeto deque en múltiples procesos

Mostrando múltiples procesos java con diferentes pids

Comunicación entre múltiples procesos con zmq

¿Algún enfoque factible para usar múltiples GPU, múltiples procesos con tensorflow?

FirebaseFirestore múltiples procesos

Iniciar múltiples procesos PHP

Erlang monitorea múltiples procesos

Python ejecutando múltiples procesos

¿Cómo ejecutar múltiples procesos Tor a la vez con diferentes IP de salida?

¿Cómo ejecutar procesos canalizados con bash en múltiples núcleos?

Vaciar una tabla de base de datos con múltiples procesos concurrentes

Error de clave duplicada en Upsert con múltiples procesos (Mongo> = 3.0.4 WiredTiger)

Grupo asincrónico de conexiones en Tornado con múltiples procesos

¿Cómo sincronizar una variable con múltiples procesos en Python?

Procesamiento múltiple más lento con más procesos

Elastic Beanstalk ejecutando la aplicación mod_wsgi Django con múltiples procesos que causan un bucle 302

Docker - R crea múltiples procesos

Bash sigue devoluciones de múltiples procesos

Tareas paralelas frente a múltiples procesos

El servidor Nodejs toma múltiples procesos

Enumere los procesos con más tiempo de CPU (Powershell)

Encuentre un usuario con más procesos ejecutando powershell

TOP Lista

CalienteEtiquetas

Archivo