Linux Process Management
Tags: linux, bash
Published: 2023-02-09 05:33:26

> I will be describing some of the process management commands I went through and researched in this post

# # nice

**▶  	설명**

> nice 명령어는 수정된 스케줄링 우선 순위로 프로그램/프로세스를 실행하는 데 도움이 됩니다. 사용자 정의 예약 우선 순위를 사용하여 프로세스를 시작합니다. 이 경우 프로세스에 더 높은 우선 순위를 부여하면 커널이 해당 프로세스에 더 많은 CPU 시간을 할당합니다.
> 

**▶  사용법**

`nice [-n increment] command [arguments]`

**▶   옵션**

| 옵션 | 내용 |
| --- | --- |
| -n increment | 새 프로세스에 대한 우선 순위를 지정할 수 있으며 증가 값은 -20과 19 사이의 정수 값이 될 수 있습니다. |

**▶   실습**

1. 예제1:

다음 명령어는 우선 순위 수준 10에서 `find` 명령어를를 시작합니다:

```bash
nice -n 10 find / -name file.txt
```

기본값 `0`보다 낮은 우선 순위인 `10`의 우선 순위로 프로그램이 시작됩니다.

2. 예제2:

기본값으로 프로그램 실행합니다:

```bash
nice yum update
```

3. 예제3:

우선 순위 수준이 다른 여러 명령어들을 시작합니다:

```bash
nice -n -10 find / -name f1.txt & nice -n 10 yum update
```

# **# renice**

**▶  	설명**

> renice 명령어를 사용하면 이미 실행 중인 프로세스의 예약 우선 순위를 변경하고 수정할 수 있습니다. 리눅스 커널은 프로세스를 예약하고 그에 따라 CPU 시간을 할당합니다.
> 

**▶   사용법**

`renice priority [-p PID | -g pgrp | -u user] [ -t ]`

**▶    옵션**

| 옵션 | 내용 |
| --- | --- |
| -p | -p 옵션은 우선 순위를 변경할 프로세스의 프로세스 ID를 지정하는 데 사용됩니다 |
| -g | -g 옵션은 프로세스 그룹 ID를 지정하는 데 사용됩니다 |
| -u | -u 옵션은은 프로세스의 사용자 이름을 지정하는 데 사용됩니다. |
| -t | -t 옵션은 지정된 프로세스의 모든 프로세스와 모든 하위 프로세스에 영향을 미치는 데 사용됩니다. |

**▶   실습**

1. 예제1:

`PID`가 `1234`인 프로세스의 우선 순위를 `-5`로 변경합니다:

```bash
renice -n -5 -p 1288
1288 (process ID) old priority 0, new priority -5
```

2. 예제2:

사용자 `johndoe`에 속하는 모든 프로세스의 우선 순위를 `10`으로 변경합니다:

```bash
renice -n 10 -u s1
1001 (user ID) old priority 0, new priority 10
```

3. 예제3:

프로세스 그룹 `1234`의 모든 프로세스 우선 순위를 `5`로 변경합니다:

```bash
renice -n -5 -g 1288
1288 (process group ID) old priority -5, new priority -5
```

4. 예제4:

`PID`가 `1234`인 프로세스의 모든 하위 프로세스의 우선 순위를 `-10`으로 변경합니다:

```bash
renice -n -10 -p 1288 -t
1288 (process ID) old priority -10, new priority -10
```

5. 예제5:

시스템에서 실행 중인 모든 프로세스의 우선 순위를 `19`로 변경합니다:

```bash
renice -n 19 -p 0
0 (process ID) old priority -10, new priority 19
```

# # nohup

**▶  	설명**

> nohup(No Hang Up)는 셸/터미널에서 로그아웃한 후에도 프로세스를 실행하는 Linux 시스템의 명령입니다. 이 명령은 일반적으로 완료하는 데 오랜 시간이 걸리는 프로세스를 시작하거나 사용자의 SSH 연결이 끊어진 경우에도 계속 실행되는 원격 서버에서 명령을 실행하는 데 사용됩니다.
> 

**▶   사용법**

`nohup command [command-argument ...]`

OR

`nohup options`

**▶    옵션**

| 옵션 | 내용 |
| --- | --- |
| -f | 이 옵션을 선택하면 output이 표준 출력과 표준 오류를 모두 nohup.out 파일로 출력 합니다. |
| -p | 이 옵션을 선택하면 옵션 뒤에 지정된 파일로 출력합니다. |
| -d | 이 옵션을 선택하면 작업 디렉터리가 옵션  뒤에 지정된 디렉터리로 변경니다. |
| -u | 이 옵션을 선택하면 output 출력을 현재 작업 디렉토리 대신 사용자의 홈 디렉토리에 있는 nohup.out 파일로 출력 합니다. |

**▶   실습**

1. 예제1:

다음은 옵션이 없는 `nohup` 명령어의 예입니다:

```bash
nohup random_command
```

2. 예제2:

다음은 `-f` 옵션을 사용하는 `nohup` 명령어의 예입니다:

```bash
nohup -f long_running_command
```

3. 예제3:

다음은 `-p` 옵션을 사용하는 `nohup` 명령어의 예입니다:

```bash
nohup -p myoutput.log long_running_command
```

4. 예제4:

다음은 `-d` 옵션을 사용하는 `nohup` 명령어의 예입니다:

```bash
nohup -d /path/to/directory long_running_command
```

5. 예제5:

다음은 `-u` 옵션을 사용하는 `nohup` 명령어의 예입니다:

```bash
nohup -u long_running_command
```

# # pgrep

**▶  	설명**

> pgrep명령어는 지정된 패턴과 일치하는 실행 중인 프로세스의 PID(프로세스 ID)를 검색하고 표시할 수 있는 Linux의 명령줄 유틸리티입니다. grep은 procps 패키지의 일부입니다.
> 

**▶   사용법**

`pgrep [options] pattern`

**▶    옵션**

| 옵션 | 내용 |
| --- | --- |
| -n | 지정된 패턴과 일치하는 모든 프로세스의 최신 프로세스 ID만 표시합니다. |
| -o | 지정된 패턴과 일치하는 모든 프로세스 ID만 표시합니다. |
| -l | 지정된 패턴과 일치하는 프로세스 ID와 함께 프로세스 이름을 표시합니다. |
| -v | 지정된 패턴과 일치하지 않는 모든 프로세스 ID를 표시합니다. |
| -u | 특정 사용자 아래에서 실행 중인 모든 프로세스의 프로세스 ID를 표시합니다. |
| -g | 특정 그룹에 실행 중인 모든 프로세스 ID를 표시합니다. |
| -f | 명령줄 이름 또는 명령줄이 특정 단어로 시작하는 모든 프로세스의 모든 프로세스 ID를 표시합니다. |
| -d | 출력에서 프로세스 ID 및 프로세스 이름을 구분합니다. |

**▶   실습**

1. 예제1:

`bash` 명령을 실행하는 프로세스의 `PID`를 찾으려면 다음을 수행합니다:

```bash
pgrep bash
```

2. 예제2:

`HTTP`를 실행하는 모든 프로세스를 찾기 위해 다음을 수행합니다:

```bash
pgrep httpd
```

3. 예제3:

다음은 `-n`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -n bash
```

4. 예제4:

다음은 `-o`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -o bash
```

5. 예제5:

다음은 `-l`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -l bash
```

6. 예제6:

다음은 `-v`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -v bash
```

7. 예제7:

다음은 `-u`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -u user1 bash
```

8. 예제8:

다음은 `-g`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -g group1 bash
```

9. 예제9:

다음은 `-f`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -f "my_command"
```

10. 예제10:

다음은 `-d`옵션을 사용하는 `pgrep` 명령어의 예입니다:

```bash
pgrep -d ':' -l bash
```