Linux 程序运行方式以及把控

程序运行的方式有两种:

第一种:前台 (绝对路径)

文件在当前路径:./app

文件在其他路径:/home/project/app

第二种:后台(绝对路径 + &)

文件在当前路径:./app &

文件在其他路径:/home/project/app &

如何将正在运行的前台程序转为后台运行?

第一步:ctrl + z   (ps:暂停执行,暂停后的程序可以通过后面的gb活着fb命令执行方式继续唤醒执行)

第二步:jobs -l      (ps:查看后台运行的程序)

 

第三部:bg %1    (ps:bg命令就是将程序放到后台执行,命令原型:bg %n  n是程序编号,就是通过jobs命令查看到的编号)

 

如何将正在运行的后台程序转为前台运行?

fg %n                   (ps:n是程序编号  通过 jobs -l查询   就像上图 可以用 fg % 1 ,fg %2, fg %3 )

 

结束程序?

前台执行程序:Ctrl + c                  (ps:终止程序)

后台执行程序:kill -9 pid                (ps:杀死进程,pid是进程ID,jobs -l查询出的信息中有)

 

终端结束后,程序依然执行:

当用户注销(logout)或者网络断开时,终端会收到Linux HUP信号(hangup)信号从而关闭其所有子进程。

第一种:nohup命令(ps:忽视HUP信号)

nohup /home/project/app & 

第二种:setsid命令(ps:与父进程脱离关系(会话关系,进程关系,终端...颇有点六亲不认的感觉),重新新建会话(另起炉灶),父进程凉不凉的我不知道,终端凉了没我也不清楚(就算诛九族也跟它没关系))

setsid /home/project/app &

在unistd.h头文件还有setsid() 这么个函数,功能好像差不多

 

把控:

重定向

在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:
一、 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
二、 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
三、 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>

对于一个程序来说,有输出内容是很普遍的事情,如果一直看着运行结果,怕是有点不科学。所以...重定向 我脚得ok

/home/project/app > logs  &    (ps:将app的输出 重定向到logs,如果文件存在则覆盖) 末尾的& 是放在后台执行

/home/project/app >> logs &    (ps:将app的输出 重定向到logs,如果文件存在则追加)

/home/project/app 1>logs 2>eLogs &   (ps:将app的输出 正确的重定向到logs,错误的重定向到eLogs)

/home/project/app >logs 2> &1 &   (ps:将app的正确和错误的都输出 重定向到logs)

运行输出日志有了。

如何观察日志?

tail命令

动态监视:

tail -f logs      (ps:监视logs的后10行数据,默认10行)

tail -f -n 20 logs (ps:监视后20行)

静态查看:

tail -n 10 logs   (ps:查看logs文件的后十行数据)

tail -n  +100  logs (ps:查看logs的100行以后的数据)

head命令

head -n 10 logs   (ps:查看文件的前10行数据...)

可能有些有错没注意到。。。。。社会,社会。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值