Linux:Linux系统程序与进程

Linux系统程序与进程

本博客将介绍Linux系统中的程序和进程,并详细介绍一些与进程相关的常用命令。我们将讨论如何使用这些命令来查看、管理和操作进程,以及一些其他有用的功能和技巧。

程序和进程

在Linux系统中,程序是指可执行文件或脚本,它们包含了一系列指令和操作,用于完成特定的任务。当我们运行一个程序时,操作系统会为该程序创建一个进程。

进程是指在运行中的程序的实例。每个进程都有自己的独立内存空间和系统资源,并且可以与其他进程进行通信。Linux系统使用进程来执行各种任务,包括运行应用程序、处理系统事件等。

进程静态查看工具

ps

ps命令用于查看当前系统中的进程信息。

  • ps aux:显示当前所有用户的所有进程信息。
  • ps -l:以长格式显示进程信息,包括进程的状态、优先级等详细信息。
  • pstree -p:以树状图显示进程间的关系,并显示进程的PID(进程ID)。

以下是一些示例:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2 168120  9772 ?        Ss   Jun21   0:03 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jun21   0:00 [kthreadd]
...

$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 -  8855 poll_s ?        00:00:03 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
...

$ pstree -p
init(1)─┬─systemd(979)-─(sd-pam)(982)
        ├─systemd-journal(301)
        ├─systemd-udevd(367)
        └─sshd(1209)─┬─sshd(1857)───bash(1859)
                     ├─sshd(2204)───bash(2206)
                     ├─sshd(2919)───bash(2921)
                     └─sshd(2976)───bash(2978)

进程动态查看工具

top

top命令用于实时监视系统中的进程和系统资源的使用情况。

以下是一些常用的top命令参数:

  • -d <秒数>:指定刷新间隔时间,默认为3秒。
  • -u <用户名>:只显示指定用户的进程信息。
  • -p <PID>:只显示指定PID的进程信息。

以下是一个示例:

$ top -d 5
top - 10:34:52 up  1:23,  1 user,  load average: 0.02, 0.05, 0.07
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.1 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2046652 total,   251988 free,   949876 used,   754788 buff/cache
KiB Swap:  1048572 total,   903964 free,   144608 used.  1039208 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1176 root      20   0  155520  21204  10792 S   0.3  1.0   0:08.56 Xorg
 2124 user      20   0 2771296 205680  76052 S   0.3 10.0   0:49.82 gnome-shell
 ...

进程的前后台调动

jobs

jobs命令用于查看当前会话(shell)中正在运行或挂起的作业(任务)。

以下是一个示例:

$ sleep 60 &
[1] 1234   # 作业[1](PID为1234)在后台运行

$ jobs
[1]+  Running                 sleep 60 &

$ fg %1  # 将作业[1]调至前台

kill

kill命令用于发送信号给指定的进程,以终止或管理进程。

以下是一些常用的kill命令参数:

  • -l:列出所有可用的信号。
  • -9:使用SIGKILL信号强制终止进程。

以下是一个示例:

$ ps aux | grep firefox
user    2345  4.5 10.2 123456 54321 ?        Sl   Jun22   1:23 firefox

$ kill -9 2345  # 终止进程ID为2345的进程

改变进程优先级

可以使用nice命令来改变进程的优先级。

以下是一个示例:

$ nice -n 10 command  # 将command命令的优先级调整为10

screen 虚拟窗口管理器

screen是一个虚拟终端管理器,它允许用户在单个终端会话中创建多个窗口并切换。

以下是一些常用的screen命令:

  • screen:启动一个新的screen会话。
  • Ctrl+A D:分离当前的screen会话。
  • screen -r:恢复之前分离的screen会话。

nohup 离线管理

nohup命令用于在后台运行程序,并忽略所有挂起的SIGHUP信号。

以下是一个示例:

$ nohup command > output.log &

设置来电自启

要设置一个程序在系统启动时自动运行,可以将其添加到启动脚本中,如/etc/rc.local或使用systemd服务。

设置定时开机

要设置系统定时开机,可以使用crontab命令来编辑定时任务。

以下是一个示例:

$ crontab -e

然后在编辑器中添加一行类似以下的条目:

0 8 * * 1-5 /sbin/shutdown -r now

这将在每周一至周五的早上8点定时重启系统。

恢复误删除文件(仅限于CentOS 6)

在CentOS 6中,可以使用extundelete工具来恢复被误删除的文件。

以下是一个示例:

$ extundelete /dev/sda1 --restore-file /path/to/deleted/file

请注意,恢复误删除的文件并不总是成功的,因此请在执行恢复操作之前谨慎评估。

结论

本博客介绍了Linux系统中的程序和进程的概念,并提供了一些与进程相关的常用命令的详细说明和示例。通过了解和熟练使用这些命令,您可以更好地管理和操作系统中的进程,以及利用其他功能和技巧来提高工作效率和系统维护能力。希望这篇博客对您有所帮助!

猜你喜欢

转载自blog.csdn.net/run65536/article/details/131354973