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 的系统中运行其余的各种启动脚本。)
Tip:这个名字末尾的 .service 后缀是可以省略的,因为systemctl默认的后缀就是 .service。关于Unit文件后缀的含义,会在后续进阶篇的文章里详细说明。
Systemd会自动找到 /usr/lib/systemd/system 目录中的 .service 文件,并启动其中定义的服务。如果之前创建的Unit文件是放在其他目录下的,这里需要使用文件的完整路径。
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!