Inicie varios comandos para ejecutar los comandos y programas correspondientes en linux

  
        

Autor: Zhangchang Chang

En algunos casos, a menudo se necesita para poner en marcha múltiples terminales y permitir que el terminal para realizar la ejecución automática de comandos, con el fin de lograr el propósito de mejorar la eficiencia operativa. En el comando gnome-terminal start terminal de linux,

gnome-terminal -x seguido del comando ejecutado, bash es el comando subshell de arranque de linux, bash -c "la cadena de comandos que se ejecutará ", incrustando Establecer gnome-terminal -x bash -c ......, significa iniciar una nueva terminal,

y ejecutar bash -c en la terminal recién iniciada, es decir, iniciar la subshell y ejecutarla mediante la subshell -c La cadena de comando entre comillas dobles. Al mismo tiempo, para garantizar que el terminal recién abierto de gnome-terminal no salga, después de la cadena de comandos bash-c

agregue bash para permitir que se ejecute un proceso, en este caso agregue el comando erl, directamente a erl La terminal, por supuesto, no se cerrará.

c idioma versión:

#include < unistd.h > #include < sys /types.h > #include < stdio.h > #include < stdlib.h > Int main (int argc, char * argv []) {int count = atoi (argv [1]), i; para (i = 0; i < count; i ++) {pid_t pid = fork (); if (pid = = 0) {//printf (" child =% d ", getpid ()); system (> gnome-terminal -x bash -c 'ulimit -n 1000000; cd /home; erl' "); Exit (0);}} exit (0);}

Execute ./a.out 3 Este programa utiliza el modo multiproceso asíncrono, el subproceso de bifurcación, a través de la ejecución de llamadas del sistema (..) correspondiente al sistema El comando, el programa debe prestar atención a (1) cómo la función principal toma parámetros, los parámetros son de argv [1], el parámetro predeterminado de argv [0] es " 0 ", en realidad la longitud de la matriz argv Es el número de parámetros externos más 1; (2) bifurcación fuera del proceso hijo, todavía ejecutará el bucle for, por lo que para evitar este fenómeno, después de que se ejecute el proceso hijo de bifurcación, exit (0) permite que el hijo procese la salida, inicie el siguiente hijo Proceso; (3) el valor de retorno de la bifurcación es 0 en el proceso hijo, en el proceso padre Número de proceso generado proceso hijo; atoi (4) idioma c () se puede convertir a un entero cuerdas.

Bash shell version
#! /bin /bash para ((i = 0; i < $ 1; i ++)) do ((port = 2 + i)) gnome-terminal -x bash -c " cd /home; ulimit -n 1000000; erl + K true -run io format $ port " &done

El script es más ligero y flexible, tenga en cuenta que &está activado para ejecutarse en segundo plano para evitar el bloqueo del proceso actual En la siguiente ejecución, se puede ver que el shell también es un modelo multiproceso, y el script js es un modelo de proceso único.
Reimpreso para indicar la fuente.

Copyright © Conocimiento de Windows All Rights Reserved