Slackware Loongarch64 中文手册
  • 翻译说明
    • 贡献力量
  • 前言
    • 目标读者
    • 为什么会有一版新的 Slackware 手册?
    • 本书中使用的约定
    • 致谢
  • Slackware 介绍
    • 为何使用 Slackware?
    • 与其他 Linux 发行版的差异
    • 许可
  • 安装
    • 从安装介质启动
    • 分区
    • 安装程序
      • Help
      • Keymap
      • Addswap
      • Target
      • Source
      • Select
      • Install
      • Configure
  • 引导
    • mkinitrd
    • 引导器
      • LILO
      • GRUB2
    • 多重引导
      • 引导多个分区
      • 引导多个硬盘
  • 基本 Shell 命令
    • 系统文档
    • 处理文件和目录
      • 列出文件和目录内容
      • 在文件系统中移动
      • 文件和目录的创建与删除
    • 归档和压缩
      • zip、unzip
      • gzip
      • bzip2
      • XZ、LZMA
      • tar
    • 阅读文档
      • more
      • less
    • 链接
  • Bourne Again Shell
    • 什么是 Shell?
    • 环境变量
    • 通配符
    • TAB 键补全
    • 输入、输出重定向
    • 任务管理
    • 终端
    • 制定
  • 进程控制
    • ps
    • kill 和 killall
    • top
    • 计划任务
  • X 视窗系统
    • X 是什么?
    • 配置 X 服务器
    • 选择窗口管理器
    • 设置图形界面登陆
  • 打印
    • 选择打印程序
    • 获取驱动
    • 在 CUPS 中设置打印机
    • 从命令行打印
      • 打印格式化数据
  • 用户和组
    • 用户和组是什么?
    • 管理用户和组
    • 管理用户和组的其他工具
    • 手动管理用户和组
  • 文件系统权限
    • 权限概述
    • chmod、chown 和 chgrp
    • SUID、SGID 和粘滞位
  • 使用文件系统
    • 文件系统的层次
    • 本地文件系统类型
      • ext2
      • ext3
      • ext4
      • reiserfs
      • XFS
      • JFS
      • iso9660
      • vfat
      • swap
    • 使用 mount 指令
    • 网络文件系统
      • NFS
      • SMB
  • vi
    • vi 是什么?
    • vi 的不同模式
    • 打开、保存和退出
    • 移动光标
    • 编辑文本
    • vi 小纪
  • Emacs
    • Emacs 是什么?
    • 起步
    • 移动光标
    • 获得帮助
    • 调用函数
    • Emacs 小纪
  • 网络
    • netconfig
    • 手动配置
    • 使用 rc.inet1.conf 自动配置网络
  • 无线网络
    • iwconfig
    • 有线等(无)效保密
    • Wifi 登陆保护
      • 再看 rc.inet1.conf
    • wicd
  • 基本网络工具
    • 网络诊断工具
      • ping
      • traceroute
      • telnet
      • ssh
      • tcpdump
      • nmap
      • host
      • dig
      • finger
    • 网页浏览器
      • lynx
      • links
      • wget
    • 邮件客户端
      • pine
      • mutt
      • mailx
    • FTP 客户端
      • ftp
      • ncftp
      • lftp
    • rsync
  • 包管理
    • pkgtool
    • 软件包的安装、移除和升级
    • 软件包的压缩格式
      • slackpkg
      • rpm2tgz
  • 追踪系统更新
    • 稳定分支
    • 订阅安全更新邮件列表
    • 升级 Slackware 版本
  • Linux 内核
    • 内核是做什么的?
    • 设置内核模块
    • 编译以及为什么要编译内核
由 GitBook 提供支持
在本页
在GitHub上编辑
  1. 进程控制

kill 和 killall

管理进程并不仅仅是了解哪些进程在运行,还包括改变它们的行为。最常见的管理程序的方法就是结束它。做这项工作的工具是 kill(1) 。尽管名字如此,但它实际上并不结束进程,只是向它们发送信号。最常见的信号是 SIGTERM,它告诉进程结束正在进行的工作然后终结。还有一些其它可以发送的信号,最常用的三个是 SIGTERM 、 SIGHUP 和 SIGKILL 。

进程收到信号时会做什么呢。大多数程序收到任何信号时会退出(或者试图退出),但有些特殊的信号除外。对于初学者,SIGTERM 信号告诉进程应该结束自己。这给了进程完成重要活动的时间,比如在退出前向磁盘上写信息。相反的,SIGKILL 信号告诉进程立刻结束。这在杀死无响应的进程时很有用,这通常被称作“银弹”("silver bullet")。一些进程(通常是守护进程)会捕获 SIGHUP 信号并在收到这种信号时重新加载配置文件。

为了向进程发送信号,我们首先需要知道它的 PID。你可以使用我们说过的 ps 很容易的得到它。为了向正在运行的进程发送不同的信号,你可以使用信号编号和 -s 作为参数。 -l 参数列出了所有你可以选择的信号和它们的编号。你也可以使用 -s 和它们的名称来发送信号。

译者注:PID 即为进程号。

darkstar:~$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL
 5) SIGTRAP	 6) SIGABRT	 7) SIGBUS	 8) SIGFPE
 9) SIGKILL	10) SIGUSR1	11) SIGSEGV	12) SIGUSR2
13) SIGPIPE	14) SIGALRM	15) SIGTERM	16) SIGSTKFLT
... many more lines omitted ...
darkstar:~$ kill -s 9 1234 # SIGKILL
darkstar:~$ kill -s 1 1234 # SIGHUP
darkstar:~$ kill -s HUP 1234 # SIGHUP

有时你可能希望结束所有匹配某个进程名的进程。你可以使用 killall(1) 杀死这些进程。只需要向 killall 提供与 kill 相同的参数即可。

darkstar:~$ killall bash # SIGTERM
darkstar:~$ killall -s 9 bash # SIGKILL
darkstar:~$ killall -s 1 bash # SIGHUP
darkstar:~$ killall -s HUP bash # SIGHUP
上一页ps下一页top

最后更新于1年前