命令或脚本执行的方式

1、source命令
   用法: source filename
   作用: 在当前bash环境下读取并执行filename中的命令,该filename文件可以无"执行权限" 
   注:source命令通常用“.”来替代,如:source bash_profile   . bash_profile两者等效。 
   source(或点)命令通常用于重新执行刚修改的初始化文档。 
   source命令(从 C Shell 而来)是bash shell的内置命令。 
   “.”命令(从Bourne Shell而来),就是顺序的执行文件里的命令。
2、sh和bash命令
   用法: sh filename 或 bash filename
   作用: 在当前相应的bash环境下新建一个子shell读取并执行filename中的命令,该filename文件可以无"执行权限" 
   注:两者在执行文件时的不同,是分别用自己的shell来跑文件。 
   sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强“-x”选项的输出信息等。
3、./命令
   用法: ./filename 
   作用: 打开一个子shell来读取并执行filename中命令,该文件必须有可执行的权限。 
   注:运行一个shell脚本时会启动另一个命令解释器。
4、exec
   作用: 以新的程序取代shell,或者改变shell本身的I/O设置。
   系统调用exec是以新的进程去代替原来的进程,但进程的PID保持不变。因此,可以这样认为,exec系统调用并没有创建新的进程,只是替换了原来进程上下文的内容。原进程的代码段,数据段,堆栈段被新的进程所代替。
   这个命令还可以作为find命令的一个选项。
   find ./ -name "test.txt" -exec rm {} /;

5、fork
   fork是linux的系统调用,用来创建子进程(child process)。子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境。子进程与父进程唯一不同的地方在于pid(process id)。

6. supervise
supervise是个进程的管理工具,原理是这样的 :
 supervise启动的时候fork一个子进程,子进程执行execvp运行指定的进程。指定进程变成supervise的子进程运行,而supervise则死循环运行,并通过waitpid或者wait3系统调用选择非阻塞的方式去侦听子进程的运行情况。当然同时也会读取pipe文件svcontrol的命令,然后根据命令去执行不同的动作。如果子进程因某种原因导致退出,则supervise通过waitpid或者wait3获知,并继续启动模块,如果模块异常导致无法启动,则会使supervise陷入死循环,不断的启动模块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值