kernel-small-debug-shell-cmd-kill.md 4.9 KB
Newer Older
D
duangavin123 已提交
1
# kill
W
wenjun 已提交
2

N
NEEN 已提交
3

D
duangavin123 已提交
4
## 命令功能
W
wenjun 已提交
5

L
liuwenxin 已提交
6
kill命令用于发送特定信号给指定进程,让它去终结不正常的应用。
W
wenjun 已提交
7 8


D
duangavin123 已提交
9
## 命令格式
10

D
duangavin123 已提交
11
kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
W
wenjun 已提交
12 13


D
duangavin123 已提交
14
## 参数说明
Yansira's avatar
Yansira 已提交
15

L
liuwenxin 已提交
16
**表1** 参数说明
Yansira's avatar
Yansira 已提交
17

L
liuwenxin 已提交
18 19 20 21 22 23 24
| 参数   | 参数说明                   | 取值范围    |
| ------ | -------------------------- | ----------- |
| --help | 查看kill命令支持的参数列表 | N/A         |
| -l     | 列出信号名称和编号。       | N/A         |
| -s     | 发送信号                   | N/A         |
| signo  | 信号ID。                   | [1, 30]      |
| pid    | 进程ID。                   | [1, MAX_INT] |
Yansira's avatar
Yansira 已提交
25

D
duangavin123 已提交
26
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
L
liuwenxin 已提交
27
> signo有效范围为[0, 64],建议取值范围为[1, 30],其余为保留内容。
Yansira's avatar
Yansira 已提交
28

D
duangavin123 已提交
29 30 31 32 33

## 使用指南

- 必须指定发送的信号编号及进程号。

L
liuwenxin 已提交
34
- 进程编号取值范围根据系统配置变化,例如系统最大支持pid为256,则取值范围缩小为[1, 256]。
D
duangavin123 已提交
35

L
liuwenxin 已提交
36 37 38
## 特殊说明

kill命令以及参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。
D
duangavin123 已提交
39 40 41 42

## 使用实例

- 查看当前进程列表,查看需要杀死的进程PID(42)。
L
liuwenxin 已提交
43

D
duangavin123 已提交
44 45 46 47 48 49 50 51 52 53 54 55
  ```
  OHOS:/$ ps
    allCpu(%):    4.67 sys,  195.33 idle
    PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
      1    -1    1         0 Pending   0x33b000  0xbb000     0x4db02      0.0   init
      2    -1    2         0 Pending   0xdabc08        0    0xdabc08      1.14  KProcess
      3     1    3         7 Pending   0x72e000 0x1a3000    0x1d24c2      0.0   foundation
      4     1    4         8 Pending   0x362000  0xbb000     0x5c6ff      0.0   bundle_daemon
      5     1    5         1 Pending   0xdfa000 0x2e7000    0x1484f0      0.0   appspawn
      6     1    6         0 Pending   0x688000 0x137000    0x11bca0      0.0   media_server
      7     1    7         0 Pending   0x9d2000 0x103000     0xa1cdf      0.88  wms_server
      8     1    8         2 Pending   0x1f5000  0x48000     0x47dc2      0.2   mksh
D
duangavin123 已提交
56
     10     5    5       101 Pending  0x11ec000 0x2f9000    0x206047      0.93  com.example.launcher
D
duangavin123 已提交
57 58 59 60 61 62 63 64 65
     12     1   12         0 Pending   0x4d4000 0x112000     0xe0882      0.0   deviceauth_service
     13     1   13         0 Pending   0x34f000  0xbd000     0x51799      0.0   sensor_service
     14     1   14         2 Pending   0x34e000  0xb3000     0x52184      0.0   ai_server
     15     1   15         0 Pending   0x61f000 0x13b000    0x168071      0.45  softbus_server
     42     8   42         2 Pending   0x1c1000  0x3a000     0x1106a      0.9   test_demo
     43     8   43         2 Running   0x1d7000  0x3a000     0x1e577      0.0   toybox
  ```

- 发送信号9(SIGKILL默认行为为立即终止进程)给42号进程test_demo(用户态进程):kill -s 9 42(kill -9 42效果相同),并查看当前进程列表,42号进程已终止。
L
liuwenxin 已提交
66

D
duangavin123 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
  ```
  OHOS:/$ kill -s 9 42
  OHOS:/$
  [1] + Killed               ./nfs/test_demo
  OHOS:/$ ps
    allCpu(%):    4.73 sys,  195.27 idle
    PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
      1    -1    1         0 Pending   0x33b000  0xbb000     0x4e01c      0.0   init
      2    -1    2         0 Pending   0xda5fa4        0    0xda5fa4      1.14  KProcess
      3     1    3         7 Pending   0x72e000 0x1a3000    0x1d29dc      0.0   foundation
      4     1    4         8 Pending   0x362000  0xbb000     0x5cc19      0.0   bundle_daemon
      5     1    5         1 Pending   0xdfa000 0x2e7000    0x148a0a      0.0   appspawn
      6     1    6         0 Pending   0x688000 0x137000    0x11c1ba      0.0   media_server
      7     1    7         0 Pending   0x9d2000 0x103000     0xa21f9      0.89  wms_server
      8     1    8         2 Pending   0x1f5000  0x48000     0x482dc      0.2   mksh
D
duangavin123 已提交
82
     10     5    5       101 Pending  0x11ec000 0x2f9000    0x206561      0.93  com.example.launcher
D
duangavin123 已提交
83 84 85 86 87 88
     12     1   12         0 Pending   0x4d4000 0x112000     0xe0d9c      0.0   deviceauth_service
     13     1   13         0 Pending   0x34f000  0xbd000     0x51cb3      0.0   sensor_service
     14     1   14         2 Pending   0x34e000  0xb3000     0x5269e      0.0   ai_server
     15     1   15         0 Pending   0x61f000 0x13b000    0x16858b      0.51  softbus_server
     45     8   45         2 Running   0x1d7000  0x3a000     0x1e9f5      0.0   toybox
  ```
Yansira's avatar
Yansira 已提交
89

90 91
- 发送不存在的信号值 kill -100 31

D
duangavin123 已提交
92 93

## 输出说明
W
wenjun 已提交
94

Yansira's avatar
Yansira 已提交
95
发送成功或失败输出结果如下。
W
wenjun 已提交
96

L
liuwenxin 已提交
97 98
**示例1** 发送信号给指定进程

W
wenjun 已提交
99

D
duangavin123 已提交
100
```
Yansira's avatar
Yansira 已提交
101 102 103 104
OHOS:/$ kill -s 9 42
OHOS:/$
[1] + Killed               ./nfs/test_demo
```
W
wenjun 已提交
105

Yansira's avatar
Yansira 已提交
106
信号发送成功会显示的提示进程已被杀死。
W
wenjun 已提交
107

L
liuwenxin 已提交
108 109
**示例2** 信号发送失败

W
wenjun 已提交
110

D
duangavin123 已提交
111
```
Yansira's avatar
Yansira 已提交
112 113 114
OHOS:/$ kill -100 31
kill: Unknown signal '(null)'
```
W
wenjun 已提交
115

L
liuwenxin 已提交
116
信号发送失败,示例2所示原因为信号发送命令参数无效,请排查信号编号及进程编号是否有效。