linux怎么打开两个主机,linux下通过命令启动多个终端执行相应的命令和程序 -电脑资料...

作者:张昌昌

在一些情况下,往往需要同时启动多个终端并让终端执行自动执行相应的命令,进而达到提高操作效率的目的,

gnome-terminal -x 后跟执行的命令,bash是linux启动子shell的命令,bash -c "所要执行的命令串",通过嵌套gnome-terminal -x bash -c ......,表示启动新终端,

并在新启动的终端里执行bash -c,即启动子shell,由子shell执行-c后面的双引号括起来的命令串。同时为保证gnome-terminal新启的终端不退出,要在bash -c的命令串后

加bash让其有一个进程在运行,本例中加的是erl命令,直接进入erl终端,当然不会退出。

c语言版:

#include

#include

#include

#include

int main(int argc,char * argv[])

{

int count = atoi(argv[1]),i;

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

}

执行 ./a.out 3

该程序采用异步多进程方式,fork子进程,通过system(,linux下通过命令启动多个终端执行相应的命令和程序》(https://www.unjs.com)。。。。)系统调用执行相应的命令,该程序需要注意的是(1)main函数如何带参数,所带的参数是从argv[1]开始的,argv[0]默认的参数为“0”,实际上argv数组的长度是外面参数的个数加1;(2)fork出的子进程,照样会执行for循环,因此为避免此现象发生,fork子进程执行后,exit(0)让子进程退出,启动下一个子进程;(3)fork返回值在子进程里是0,在父进程里是生成的子进程进程号;(4)c语言的atoi()可以把字符串转化为整型。

Bash shell版#!/bin/bash for((i=0;i

该脚本更加轻量灵活,注意&是切换到后台运行,防止阻塞当前进程的for的下一次执行,由此可知shell也是多进程模型,而js脚本是单进程模型。转载注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值