/bin or /usr/bin에 대해서
아래 2개의 경로에 보면 실행 가능한 명령어들이 존재한다.
이 둘의 차이점은 /bin은 부팅과정에서 적용되는 것들이며 /usr/bin은 부팅이 끝나고 해당 사용자에게만 적용되는 것들이다.

/usr/local/<ps_name> or /opt/<ps_name> or /usr/lib/<ps_name> or /var/lib/<ps_name>
/usr/local/<processName>
# 해당 경로는 시스템에 기본으로 제공되는 소프트웨어와 구분하여
# 로컬에서 설치된 소프트웨어를 저장하는 데 사용
# 일반적으로 apt , yum과 같은 패키지 관리자를 사용하지 않고 직접 설치한 프로그램들이 위치
# /usr는 시스템 전체에 대한것..... /usr/local은 해당 유저에만 설치한것....
/opt/<processName>
# 대규모의sw패키지 설치할때 사용
/usr/lib/<processName>
# 시스템의 라이브러리 파일을 저장하는데 사용
/var/lib/<processName>
# 시스템이 실행되는 동안 변경될 수 있는 데이터 파일을 저장하는 데 사용
# var/lib는 애플리케이션의 상태 정보, 데이터베이스 파일, 로그 파일 등을 포함 가능
# db yum 등에서 자주 사용
=====================================================================================
/etc/<processName> 에 설정 저장
- /etc디렉토리는 주로 시스템의 설정 파일들을 저장하는데 사용됨
- 시스템의 설정 파일뿐만 아니라 개별 애플리케이션의 설정 파일도 들어감.
프로세스 생성
root@jeongjihong:/usr/local/jeongTest# cat HELLO
#1 /usr/bin/env bash
echo "hello jeong"
sleep 60
# 내가 실행할 파일
root@jeongjihong:/usr/local/jeongTest# chmod +x HELLO
root@jeongjihong:/usr/local/jeongTest# ./HELLO &
[1] 11870
# 백그라운드로 실행
root@jeongjihong:/usr/local/jeongTest# ps
PID TTY TIME CMD
9855 pts/6 00:00:00 sudo
9856 pts/6 00:00:00 su
9857 pts/6 00:00:00 bash
11870 pts/6 00:00:00 bash
11871 pts/6 00:00:00 sleep
11886 pts/6 00:00:00 ps
root@jeongjihong:/usr/local/jeongTest# ps
PID TTY TIME CMD
9855 pts/6 00:00:00 sudo
9856 pts/6 00:00:00 su
9857 pts/6 00:00:00 bash
12153 pts/6 00:00:00 ps
[1]+ Done ./HELLO
/var/run/<processName>.pid 파일에 본인의 pid 를 저장
root@jeongjihong:/usr/local/jeongTest# cat hello.sh
#!/bin/bash
# 프로세스 이름 설정
process_name="HelloWorld"
# PID 파일 경로 설정
pid_file="/var/run/${process_name}.pid"
# 현재 프로세스의 PID를 PID 파일에 저장
echo $$ > "$pid_file"
echo "Hello, World! My PID is $$"
sleep 60
root@jeongjihong:/usr/local/jeongTest# ./hello.sh &
[1] 14725
Hello, World! My PID is 14725
root@jeongjihong:/var/run# cat HelloWorld.pid
14725
/var/log/<processName> 에 log 저장
우선 로그를 /var/log/processname디렉토리에 저장할 예쩡이다.
그리기 위해서 우선 mkdir.

그리고 다음과 같이 작성함.
root@jeongjihong:/var/log# vi hello.sh




그리고 위에서 실행을 했으니 로그가 잘 찍혔는지 확인한다.

프로세스 확인
ps -ef | grep을 사용하면 됨
여기에서 e는 every process의 약자이며 모든 ps출력해줌.... f는 full format의 약자로, 프로세스 정보를 자세히 출력
kill -option pid
- -15 (SIGTERM): 정상 종료 요청. 프로세스가 종료될 시간을 가집니다. 기본 시그널
- -9 (SIGKILL): 강제 종료. 프로세스를 즉시 종료
- -1 (SIGHUP): 설정을 다시 로드하거나 재시작
- -11 (SIGSEGV) : 주로 프로그램이 잘못된 메모리 접근을 시도했을 때 발생. 즉, 시스템이 일으키는 시그널
- SIGINT (2) : 인터럽트 시그널. 일반적으로 Ctrl+C로 보냄
- SIGQUIT (3) : 종료 시그널. 일반적으로 Ctrl+\로 보
'리눅스' 카테고리의 다른 글
| ls -l 의 첫번째문자 의미 (0) | 2024.07.10 |
|---|---|
| lsof ( list open files) (0) | 2024.07.10 |
| chapter 05 sol (0) | 2023.06.11 |
| homework1 (0) | 2023.05.21 |
| code (0) | 2023.04.20 |