程序运行的方式有两种:

第一种:前台

文件在当前路径:./app

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

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

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

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

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

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

linux正在尝试其它镜像 linux 正在运行的程序_后台执行

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

linux正在尝试其它镜像 linux 正在运行的程序_shell_02

 

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

 

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

fg %n                   (ps:n是程序编号

 

结束程序?

前台执行程序: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行数据...)

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