m1ndy5's coding blog

알아두면 편리한 linux 명령어 8 (프로세스 & 서비스) 본문

클라우드 with AWS/Linux

알아두면 편리한 linux 명령어 8 (프로세스 & 서비스)

정민됴 2023. 3. 2. 21:45

명령이 실행되면 $PATH에서 그 명령이 있는지 없는지 찾게 된다.
기본적으로는 usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 여기서 먼저 찾게 되는데 만약에 이 경로 외의 명령을 실행시키고 싶은 경우 사용자가 직접 PATH에 등록시켜주어야한다.

# PATH=$PATH:/testdir
# echo $PATH

위 처럼 PATH에 등록한다면 컴퓨터를 종료시키고 다시 켰을 때는 다시 등록이 되어있지 않다.
그렇다면 PATH에 영구 등록시키려면 어떻게 해야할까??
바로 /etc/profile 혹은 ~/.bash_profile에 PATH=$PATH:$HOME/bin:/<원하는 디렉토리>
를 추가해주면 된다.
/etc/profile을 수정하면 모든 사용자에게 적용되고, ~/.bash_profile을 수정하면 해당 사용자에만 적용된다.

프로세스란?

  • 실행 중인 프로그램을 의미
  • 프로세스 ID (PID)로 식별
  • ps (-ef)혹은 top(3초 간격으로 갱신)으로 확인할 수 있음
  • 특정한 프로세스만 찾고 싶다면 ps -ef | grep <process 이름> 하면 됨

    kill

  • 실행 중인 프로세스를 종료할 때 사용
  • 예를들어 9000번 포트에 서버를 올리고 싶은데 이미 9000번에 돌아갈 경우 그 때 돌아가고 있는 서버를 죽일 때도 사용
  • kill -9 즉시 종료를 많이씀!

    cron/at

    at

  • at은 일회성 작업을 예약하는 명령어
    # at 02:00 am tomorrow
    yum -y update
    shutdown -r +5
    => 입력 후 [Ctrl + D].
    이렇게 하면 내일 새벽 2시에 최신 패키지로 업데이트 하고 재부팅된다.

    cron

  • 주기적으로 반복되는 작업을 예약
  • /etc/crontab 에서 설정
    # vi /etc/crontab
    00 02  1  *  * root       shutdown -r now
    => 4번째 *는 매월을 의미. 즉 매월 1일 새벽 2시 00분에 리부트 수행.

    systemctl

  • systemctl ex) systemctl start nginx
  • 서비스의 상태 확인, 시작, 중지, 재시작, 활성화, 비활성화 등 subcommand를 같이 사용한다.
  • 컴퓨터 전체를 다시 껐다 켜면 서버가 진짜 무거운 경우 제대로 작동이 안될 수도 있음
    -> 특정 서비스만 다시 시작하면 됨