실행파일을 직접 찾아서 실행할 필요가 없음
서비스 목록 확인(+실행중) (-실행중아님)
: service --status-all
하지만!! 요즘은 service명령어를 잘 안쓴다고함
대신 systemctl 이라는 서비스 제어 명령어를 사용
service 명령어는 systemctl의 wrapper script
sudo systemctl list-unit-files (모든파일보기) 중지하려면 ctrl c or q
*files에서 tomcat8을 찾고 싶을경우
sudo systemctl list-unit-files | grep tomcat8 을 입력
tomcat8의 상태를 보고 싶을경우
sudo systemctl status tomcat8
tomcat8을 중지
sudo systemctl stop tomcat8
tomcat8을 시작
sudo systemctl start tomcat8
ps -ef 명령어로 현재 프로세스 전체 확인 가능
특정 프로세스를 중지시키고 싶은데 중지명령어가 안먹히는경우 강제종료를 해야하는 경우가 생김
그럴때 프로세스 강제 종료 명령어로 종료시킴
kill -l (kill 종료옵션보기)
예를들어 9)SIGKILL방식으로 종료를 하고 싶은경우 kill -9 pid 를 적으면됨
보통 15)SIGTERM을 통해 종료하는데 이경우 -15를 적어도 되고 안적어도된다.
kill pid 를 적으면 끝
위 사진처럼 강제로 종료시킨경우 systemctl에서는 해당 프로세스가 일시정지 처리로 보기때문에
sudo systemctl start tomcat8 명령어를 실행시켜도 적용되지 않는 문제가 발생하는데
이럴경우 sudo systemctl restart tomcat8 명령어를 실행시켜서 재시작해야함
**만일 tomcat8의 pid만 구하고 싶은 명령어를 짜고싶은경우 (스크립트)
ps -ef | grep tomcat8 | grep -v grep | awk '{print $2}'
로 구할수 있는데
일단 ps -ef라는 명령어 조차조 하나의 프로세스로 본다.
그래서 ps-ef | grop tomcat8 로 명령어를 입력할경우 아래와 같이 표시가 되는데
보면 grep도 하나의 ps로 읽혀 있는걸 볼수 있다 그래서 이부분을 제외하기 위해 -v grep을 추가하면 grep이 들어간 부분은 제외 시킨다.
그리고 나서 awk라는 명령어를 통해 아래 그림처럼 빨간 괄호사이의 내용을 토큰화 시켜줌
예를 들어 아래와 같은 내용이 있다면
이런식으로 분리를 해준다.
그래서 awk '{print $2}' 의 의미는 awk를 적용후 두번째줄 1912를 가져온다는 내용이 된다.
그래서 결국 위 명령어와 kill을 조합하면 원하는 pid를 kill할수 있게 되는데 주의할 부분은
sudo kill `ps -ef | grep tomcat8 | grep -v grep | awk '{print $2}'`(백틱으로 감싸서 실행을 해야함, 백틱은 치환명령어)
**추가로 직접 위치에 들어가서 실행/중단 시키는 방법
sudo systemctl status tomcat8 를 입력하면 아래와 같이 정보가 뜨는데 빨간 밑줄친 부분이 해당 시스템의 위치임
cd /etc/init.d 명령어를 친후
이동해서 sudo ./tomcat stop 명령어를 실행하면 중지되고 sudo ./tomcat8 start 명령어를 사용하면 시작됨
리눅스 명령어 모음 [로그보기] (0) | 2022.09.30 |
---|---|
리눅스 명령어 모음 [파일 찾기] (0) | 2022.09.30 |
리눅스 명령어 모음 [권한] (0) | 2022.09.29 |
리눅스 명령어 모음 [vim] (0) | 2022.09.29 |
DB 연결확인 (0) | 2022.06.13 |