[RHEL6] 프로세스 관리 명령어 3탄(mkfs, nice, nohup, pidof)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 프로세스 관리 명령어 3탄(mkfs, nice, nohup, pidof)

by 찬찬이 아빠 2020. 5. 12.
반응형
  11. mkfs(리눅스 파일 시스템 생성 명령어)

 1) 경로

 /sbin/mkfs

 /sbin/mkfs.bfs

 /sbin/mkfs.ext3

 /sbin/mkfs.jffs2

 /sbin/mkfs.reiserfs

 /sbin/mkfs.cramfs

 /sbin/mkfs.ext4

 /sbin/mkfs.minix

 /sbin/mkfs.ubifs

 /sbin/mkfs.ext2

 /sbin/mkfs.ext4dev

 /sbin/mkfs.msdos

 /sbin/mkfs.vfat

 

 2) 요약 : 리눅스 파일 시스템을 만듦

 3) 사용 방법 : mkfs [옵션] 장치명 [크기]

 4) 옵션

 -V : 실행한 파일 시스템의 의존적인 명령어를 포함한 상세한 정보를 출력

 -t  파일 시스템 형태 : 생성할 파일 시스템의 타입을 지정. 지정하지 않으면 기본 파일 시스템 타입은 ext2임

 -c : 파일시스템을 생성하기 전에 디바이스의 배드 블록을 검사

 -l(엘) 파일명 : 지정한 파일명으로부터 배드 블록 목록을 읽음

 -v : 상세한 정보 출력

 

 5) 추가 설명

mkfs 명령어는 지정한 타입의 파일 시스템을 생성 합니다. 그 중에는 ext2, ext3, vfat 등의 다양한 파일 시스템을 만들 수 있습니다. 시스템에서 지원하는 파일 시스템 타입은 /sbin/mkfs로 시작하는 명령어를 확인할 수 있습니다.

# ls /sbin/mkfs*
/sbin/mkfs		/sbin/mkfs.ext2		/sbin/mkfs.ext4dev		/sbin/mkfs.ntfs
/sbin/mkfs.bfs		/sbin/mkfs.ext3		 /sbin/mkfs.minix		/sbin/mkfs.vfat
/sbin/mkfs.cramfs		/sbin/mkfs.ext4		/sbin/mkfs.msdos

 

프라이머리나 슬레이브 파티션 구성은 fdisk -l 명령으로 확인할 수 있습니다.

# fdisk -l /dev/hdb
Disk /dev/hdb: 255heads, 63 sectors, 2491 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot		Start		End		BlocksId		System
/dev/hdb		111275		10241406	83			Linux
/dev/hdb		212762491	9767520		83			Linux

 

/dev/hdb는 2개의 Linux 파티션으로 나누어져 있습니다. /dev/hdb2 파티션을 ext2 파일 시스템으로 생성해 봅니다. 새로 파일 시스템을 만들 디바이스명을 입력합니다.

# mkfs -t ext2 /dev/hdb2
mke2fs 1.23, 12-May-2020 for EXT2 FS 0.5b, 95/08/09
Filesystem label = 
OS type : Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1221600 inodes, 2441880 blocks
122094 blocks (5.00%) reserved for the super user
First data block=0
75 block groups
32768 blocks per group, 32768 fragments per group
16288 indoes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
    
This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

 

 

 

  12. nice(우선 순위 변경)

 1) 경로 : /bin/nice

 2) 요약 : 프로세스의 스케쥴링 우선 순위를 변경

 3) 사용 방법 : nice [옵션] [명령어[인수]...]

 4) 옵션

 -n 조정수치, -조정수치, --adjustment=조정수치 : 우선 순위에 10 대신 조정 수치로 변경

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

nice 명령어는 실행할 프로그램의 우선권을 변경할 수 있습니다. 만약 인수를 지정하지 않으면 현재의 스케쥴링 우선권을 출력합니다. 인수를 지정하면 변경한 스케쥴링 우선권으로 실행합니다. 조정 수치를 생략하면 명령어의 우선권은 10으로 실행합니다. nice 명령으로 조정할 수 있는 범위는 -20(가장 높은 우선권)에서 19(가장 낮은 우선권)까지 입니다.

참고로 슈퍼 유저만이 마이너스(-)의 조정 수치로 변경할 수 있습니다.

 

nice 명령어에서는 양수일 때를 -를, 음수일 때 --를 기호로 사용하지만 renice 명령어에서는 양수일 때 -를 사용하지 않습니다.

 

nice 명령어는 실행할 프로그램의 우선 순위를 변경하지만, renice 명령어는 이미 실행되어 있는 프로세스의 우선 순위를 변경합니다.

# nice -7 /usr/bin/vi &

 

ps -l 명령으로 우선 순위 7로 변경된 것을 확인할 수 있습니다. 우선 순위는 PRI 필드에 나타납니다.

# ps -l 4131
F	S	UID		PID		PPID	C	PRI		NI		ADDR	SZ		WCHAN	TTY		TIME	CMD
0	T	1000	4131	2288	0	82		7		-		1002	signal	pts/0	0:00	/usr/bin/vi

 

vi를 백그라운드 프로세스로 두개를 생성합니다.

$ vi &
$ vi &

 

ps aux 명령으로 vi의 프로세스 ID를 살펴봅니다.

$ ps aux | grep vi
user	3653	0.0	0.1	4008	1264	pts/0	T	07:32	00:00	vi
user	3656	0.0	0.1	4008	1268	pts/0	T	07:32	00:00	vi
user	3658	0.0	0.0	3148	804		pts/0	S+	07:33	0:00	grep --color=auto vi

 

renice -3 명령으로 3653번 프로세스에 우선 순위 -3을 부여합니다. 음의 우선 순위는 슈퍼 유저 권한으로만 실행할 수 있습니다. 단 일반 사용자가 실행하면 퍼미션 에러가 발생합니다.

$ renice -3 3653
renice: 3653: setpriority: Permission denied

 

아래와 같이 슈퍼유저 권한으로 음의 우선 순위를 변경할 수 있습니다.

$ sudo renice -3 3653
[sudo] password for user:
3634: old priority 3, new priority -3

 

3656 프로세스에는 6의 우선 순위로 변경합니다.

$ renice 6 3756
3656: old priority -2, new priority 6

 

ps -l 명령으로 프로세스 3653 3656의 변경된 우선 순위를 확인할 수 있습니다. 각각 -3과 6의 우선 순위를 가지고 있는것을 확인할 수 있습니다.

$ ps -l 3653 3656
F	S	UID		PID		PPID	C	PRI		NI		ADDR	SZ		WCHAN	TTY		TIME	CMD
0	T	1000	3653	2288	0	77		-3		-		1002	signal	pts/0	0:00	vi
0	T	1000	3656	2288	0	86		6		-		1002	signal	pts/0	0:00	vi

 

 

 

  13. nohup(hangup 시그널 무시)

 1) 경로 : /usr/bin/nohup

 2) 요약 : 실행 중인 프로세스가 행업 시그널을 무시하고 파일로 출력

 3) 사용 방법 : nohup 명령[인수...]

 4) 추가 설명

nohup 명령어는 행업 시그널을 무시하고, 명령을 실행합니다. 예를 들어 대용량의 파일을 다운로드하거나 커널이나 안드로이드 처럼 소스의 크기가 방대한 프로젝트를 컴파일 할 경우 실행 프로세스는 터미널이 종료되더라도 백그라운드로 진행되면 편리합니다.

 

아래는 실행 프로세스의 표준 출력과 표준 에러를 nohup.out 파일에 저장합니다.

$ nohup make

 

안드로이드 소스를 받은 디렉터리로 이동하여 아래와 같이 실행합니다. 'result 2>&1'은 make의 표준 출력과 표준 에러를 result 파일에 저장학, 맨 끝의 '&'는 터미널이 종료되어도 백그라운드로 계속 실행하게 합니다.

 

$ nohup make > result 2>&1 &

위와 같이 nohup 명령어는 프로세스의 행업 시그널을 무시하고 우선권을 5만큼 증가시켜 로그 아웃 이후에도 계속 백그라운드로 실행합니다. 로그아웃 이후에도 백그라운드로 명령을 계속 수행하려면 반드시 &를 붙여야 합니다.

 

 

  14. pidof(PID 확인)

 1) 경로 : /sbin/pidof

 2) 요약 : 실행 중인 프로그램의 프로세스 IP를 찾음

 3) 사용 방법 : pidof [옵션] 프로그램

 4) 옵션

 -s : 중복되는 프로세스 ID가 있을 때 하나의 프로세스 ID만 출력

 -x : 스크립트와 함께 실행중인 프로세스 ID도 출력

 -o pids : 지정한 프로세스(pids)를 제외하고 나머지를 출력

 

 5) 추가 설명

pidof 명령어는 실행 프로세스의 ID를 확인할 때 유용합니다.

 

아래는 실행 중인 프로세스 중 vi와 관련된 정보만을 출력합니다.

$ ps aux | grep vi
user	3653	0.0	0.1	4008	1264	pts/0	T<	07:32	0:00	vi
user	3656	0.0	0.1	4008	1268	pts/0	TN	07:32	0:00	vi

 

아래와 같이 pidof 명령으로 해당 프로세스의 PID를 확인할 수 있습니다.

$ piddof vi
3656 3653
반응형

댓글