首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

会话的概念及在linux中创建会话的命令

前一篇文章咱们说过了进程组,今天说会话。

(不知道有多少人对这方面感兴趣,因此我就简单介绍下,如果您想深入了解这方面可以留言,我会多花些篇幅介绍)

在linux中,进程组和会话是为了批量管理进程。

简单来说会话就是说话,也就是session,是在一次相互“交互”中所涉及的所有资源,比如http中所说的session,也是这个概念。各个session中的实现机制不一样,我们所说linux中进程的会话,通常是指需要人机交互操作的进程,比如登录shell后,在终端窗口中所创建的任何进程,包括键入的命令和启动的各种后台服务。

进程都有自己的pid,可以通过pid管理各个进程。当要对一批进程进行相同的操作时,可以将这些进程归为一组,以后可通过这个组同时操作组内所有进程。当要对很多组进行操作时,把这些组归为一个会话,以后可通过会话同时操作会话内所有进程。总之把进程分组和会话,目的就是为了“一锅端”时方便。

系统的进程管理不允许有脱单的进程,即任何进程都必须要属于某个组,某个会话。

会话是由多个进程组构成的,进程组是由多个进程构成的。

linux中提供了一个同名的命令——setsid,它使其参数(待执行的命令)在新的会话中执行。

如:

可以用ps axjf来输出pgid即进程组id和sid即会话Id。通过ps -axjf | grep $$可以看出当前shell的会话是4095,

接下来的setsid sleep 99是创建新会话,然后在新会话中执行sleep 99。再通过 ps -axjf | grep ‘sleep 99’|grep 0v grep找出sleep的会话id,可见其为21311,已经不属于shell的会话了.

先这样。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180212A0CB3D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券