linux &、nohup与Systemctl的使用

&、nohup与Systemd

当客户端浏览器第一次访问服务器时,服务器为每个浏览器创建不同的HttpSession对象。在服务器端使用request.getSession()方法来获得HttpSession对象,并以此来使用HttpSession接口为我们提供的方法。

session什么时候失效?

  • 服务器会把长时间没有活动的session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。
  • 调用Session的invalidate方法。
  • 关闭浏览器,结束session。

1. 使用&后台运行程序:

结果会输出到终端

使用Ctrl + C发送SIGINT信号,程序免疫

关闭session发送SIGHUP信号,程序关闭

2. 使用nohup运行程序:

结果默认会输出到nohup.out

使用Ctrl + C发送SIGINT信号,程序关闭

关闭session发送SIGHUP信号,程序免疫

因此,平日线上经常使用nohup和&配合来启动程序:可以同时免疫SIGINT和SIGHUP信号

3. Systemctl:

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

在终端中输入 ps ax | grep systemd,看到第一行,其中的数字 1 表示它的进程号是1,也就是说它是 Linux 内核发起的第一个程序。因此,内核一旦检测完硬件并组织好了内存,就会运行 /usr/lib/systemd/systemd 可执行程序,这个程序会按顺序依次发起其他程序。( 在还没有 Systemd 的日子里,内核会去运行 /sbin/init,随后这个程序会在名为 SysVinit 的系统中运行其余的各种启动脚本。)

linux &、nohup与Systemctl的使用 Linux 第1张

Tip:这个名字末尾的 .service 后缀是可以省略的,因为systemctl默认的后缀就是 .service。关于Unit文件后缀的含义,会在后续进阶篇的文章里详细说明。

Systemd会自动找到 /usr/lib/systemd/system 目录中的 .service 文件,并启动其中定义的服务。如果之前创建的Unit文件是放在其他目录下的,这里需要使用文件的完整路径。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

参与评论