Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxは、適切なコマンドや手順を通じて次の複数の端末を起動するコマンド

Linuxは、適切なコマンドや手順を通じて次の複数の端末を起動するコマンド

  

著者:Zhangchangチャン

いくつかのケースでは、通常、同時に複数の端末を必要とし、端末がコマンドの自動実行を行うことを可能にした後、運用効率を向上させる目的を達成します。 linux gnome-terminal start terminalコマンドでは、

gnome-terminal -xの後に実行されたコマンドが続きます。bashはlinux boot subshel​​lコマンドです。bash -c"実行するコマンド文字列" gnome-terminal -x bash -c ......と設定すると、新しい端末を起動することを意味します。

、新しく起動した端末でbash -cを実行します。つまり、サブシェルを起動し、subshel​​l -c behindによって実行します。二重引用符で囲まれたコマンド文字列。同時にgnome-terminalが新しくオープンした端末が終了しないようにするには、bash-cコマンド文字列の後にプロセスを実行させます。この場合は、erlコマンドを直接erlに追加します。もちろん、端末は終了しません。

C言語バージョン:

#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;(i = 0; i

実行./a.out 3このプログラムは、system(..)システムコールの実行を通じて非同期マルチプロセスモード、forkサブプロセスを使用します。コマンドは、プログラムが(1)main関数がどのようにパラメータを取るかに注意を払う必要があります。パラメータはargv [1]から、argv [0]のデフォルトパラメータは' 0'、実際はargv配列の長さ外部パラメータの数に1を加えた値、(2)子プロセスから分岐する、forループを実行するため、この現象を回避するため、fork子プロセスが実行された後exit(0)、子プロセスを終了させ、次の子を開始するプロセス;(3)子プロセス、親プロセスでfork戻り値が0プロセス番号は、子プロセスを生成し、ATOI(4)C言語()文字列を整数に変換することができます。

Bashシェルのバージョン
#!/bin /bash((i = 0; i< $ 1; i ++))do((port = 2 + i))gnome-terminal -x bash -c " cd /home; ulimit -n 1000000; erl + K true -runio形式$ port" done< p>スクリプトはより軽量で柔軟です。&はバックグラウンドで実行するように切り替えられ、現在のプロセスがブロックされないようになります。次回の実行では、シェルもマルチプロセスモデルであり、jsスクリプトはシングルプロセスモデルであることがわかります。
ソースを示すために転載。

Copyright © Windowsの知識 All Rights Reserved