linux后台启动进程

linux后台启动进程,第1张

父子进程

在linux系统里面,子进程由父进程fork而来,而所有的进程都是由init进程或其子进程fork而来,即init进程是所有进程的祖先。

父子进程的运行是相对独立的,一方的退出不会导致另一方退出。

进程组和会话

Session特点

session可以在任何时候创建,调用setsid函数即可,session中的第一个进程即为session的leader,leader是不能变的。常见的创建session的场景是用户登录,启动bash进程时将会创建新的session,bash进程会作为session的leader,随后bash里面运行的进程(不特殊处理)都将属于这个session。

session的主要特点是当session的leader退出后,session中的所有其它进程将会收到SIGHUP信号,其默认行为是终止进程,即session的leader退出后,session中的其它进程也会退出。

如果session和tty关联的话,它们之间只能一一对应,一个tty只能属于一个session,一个session只能打开一个tty。当然session也可以不和任何tty关联。

进程的启动方式:

1)前台启动:用户输入命令,直接执行程序

2)后台启动:在命令行尾加入“&”符号

要使终端关闭时进程不退出,有以下几种情况:

1)用户进程拦截SIGHUP信号。

2)使用户进程和bash进程不在一个session。

第一:假如你的bin文件有help功能的话,你可以先看看有没有参数可以带入账号密码,这样可以的话,你就能用例如

bin文件

--user=test

--pwd=123

这种的方式直接登陆。

第二:如果bin文件没有的话,可以是用expect命令来捕获提示信息,来自动进行账号密码的填写。expect命令很简单,你可以百度一下,有问题可以再问我。

第三:假设你按照我的说的上面说的方法把shell写如到了一个

my_shell.sh里面,你想让它后台运行的话,可以直接执行

sh

my_shell.sh

&就可以了。如果你想开机自动执行,你可以在/etc/rc.local最后增加一行

sh

my_shell.sh

&

即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8620078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存