linux显示所有后台运行的命令
如何查看linux上所有的进程?
如何查看linux上所有的进程?
这个命令还挺多的呀。
ps aux
ps -ef
top
htop
这几个命令都比较常见
进程分类,与终端相关的进程,与终端无关的进程
与终端相关,就是在命令提示符下启动的进程(包括前台和后台)
与终端无关的进程,随系统启动而启动的进程,和命令提示符下启动的服务,或者nohup cmd amp 启动的进程
ps分为2个风格,
嫡出systemV 的UNIX用的是传统带 - 的选项
庶出BSRG的BSD 用的是没有 带- 的选项(没有一点风格怎么像自己呢?windows路径分割符和linux就不同吧)
systemv刚开发ps(-e 显示所有进程)-f详细,-F更详细,-H hierarchy -j任务格式,-o 自定义格式
常用组合1、 ps -efH 2、ps -eFH 3、ps -ejH
4, ps -eo pid,ni,psr,rtprio
BSD现在前人的肩膀上,划分了显示进程类别,(a 与终端有关的进程, x无关的进程)
u与用户有关,Zselinux安全标签 ,o自定义格式
常用组合 1、ps axu 2、ps axZ 3、ps axo pid,ni,cmd,pri,psr
如何让linux启动自动运行指定程序?
就是重启啊……仅仅修改配置有的时候可以使用SIGHUP,这个信号本来是用于终端挂断时通知的,许多后台服务会特别处理这个信号,在遇到这个信号时重新加载配置或者执行重新启动过程。
但是更新软件并不在这个范围内,一定会使用service stop来结束旧的服务,然后用service start启动新的服务,因为没法保证旧的服务运行状况正常,且SIGHUP的处理没有bug,更不要说很多服务并不会真的从可执行程序重启而是重新加载一下配置或者重新走一遍启动流程。
在Linux上升级时自动重启是通过RPM包中自带的脚本进行的,RPM包的spec中可以指定preinstall, postinstall等段来在指定时机执行特定的脚本,比如preinstall的时候停止服务,postinstall的时候根据参数,如果$1是1表示执行update,自动启动服务;否则暂不启动服务,给用户一个修改配置文件的机会。
大部分Linux服务的实现比Windows上更简单,很多就是在main()当中用while(1){}做一个死循环,利用SIGNAL的默认处理程序退出。
并没有复杂的机制用来热更新。