메타코딩 유튜브를 참고하여 정리한 내용입니다.
ln : 링크파일을 만드는 명령어, 바로가기 파일 만들기
- -s : 심볼릭 링크파일을 생성
bin 폴더 : 실행파일이 모여 있는 곳
📣 우분투 환경에서 프로그램 설치
(1) 우분투 레포지토리 접근 (경로 등록) :/etc/apt/sources.list
접근 (현재 연결된 상태)
(2)apt-update
: 목록 갱신, apt 목록에는(메뉴판) 비어있는 상태이므로 갱신을 해줘야 한다. (음식을 개발했을 때, 메뉴판에 등록해야 한다.)
(3)apt install A 음식
: 음식 주문
- 다운로드를 받는다.
- 자동 설치를 해준다.
- 자동 설치시, 환경 변수 등록 등 여러가지 세팅을 다 해준다.
(4) apt install로 설치 안된 파일 추가 설치 - ppa 저장소 등록
/etc/apt/sources.list.d/
에 등록 : 주소 등록하면 된다.- 주소 등록 했을 경우,
apt-update
하면 자동으로 갱신된다.
✔️ 인바운드 규칙
sudo apt-cache search tomcat
: 저장소에서 tomcat 검색
현재는 tomcat9이 들고 있는 상태이다.
✔️ tomcat9 → tomcat8으로 변경해보자!
sudo apt remove tomcat9
: tomcat9 삭제, 설정파일을 지우지 않는다.
sudo apt --purge remove tomcat9
: tomcat9 삭제, 설정 파일까지 모두 지운다.
현재 메뉴판에는 tomcat8이 존재하지 않아, 설치할 수 없는 상태이다.
launchpad ubuntu ppa 로 이동
✔️ ppa에서
tomcat8 검색
이제 명령어 입력할 시 apt에 추가된다.
sudo add-apt-repository ppa:rivergod/tomcat8.5
sudo apt-get update
✔️ terminal에서
main 저장소 목록들이 주석으로 걸려 있다.
sources.list.d
는 (main 저장소에) 주소 목록들만 저장되어 있다.
sources.list.d/
에 추가된다.
💡 참고
GUI 방식도 존재하지만, CLI 방식을 사용하는 것이 좋다.
✔️ 마지막 업데이트
현재 상황
지금은 위 내용이 안된다.
이유 : ubuntu 메뉴판에서 갱신이(등록) 되지 않았기 때문에, 우분투 환경 입장에서는 없다고 판단한다.
그러므로, 설치한 것들을 등록해야 한다!
✔️ 그런데 거부를 당했다.
E: The repository 'http://ppa.launchpad.net/rivergod/tomcat8.5/ubuntu focal Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
현재 aws ec2에서 ubuntu version 20.04 LTS를 설치한 상태이다.
tomcat8.5는 Xenial만 지원하는 상태이다. (16.04 LTS)
➡️ 그래서, 현재 tomcat8.5에서는 aws ec2 ubuntu 20.04 LTS 입장에서는 사용할 수 없어, 다른 tomcat 버전을 설치해야 한다. (Focal Fossa를 지원하는 것으로 설치해야 한다!)
✔️ 다시, Apache Tomcat 8.5.x를 설치하자!
먼저, 이전에 잘못된 버전의 ppa 저장소를 삭제해야한다!
sudo add-apt-repository --remove ppa:rivergod/tomcat8.5
삭제 후, update도 잘되는 상황이다.
새로운 저장소 추가
sudo add-apt-repository ppa:ttyrnpuu/tomcat
sudo apt-get update
~.list
뒤에 .save
라는 것이 추가되었다면 삭제된 것이다!
마지막 업데이트!
sudo apt update
: 메뉴판 갱신한다.
sudo apt-cache search tomcat
sudo apt install tomcat8
설치 완료!
💡 참고
ubuntu version 확인하는 방법
lsb_release -a
✔️ Context 문맥 : 흐름
ex) 책은 총 100page이다.
➡️ context : 전, 후 사정 (이야기를 하고 있을 때 중간에 끼어들 수 있다.)
✔️ Context-Switching 주의점
하나에 집중할 때, 다른 것에 신경을 쓰지 않는다.
그러므로, 하나의 집중할 때 다른 것에도 집중할 수 있게 해야한다.
A 프로세스 | B 프로세스 |
---|---|
O(0.1초 자고 실행) | |
O | |
O(0.1초 자고 실행) | |
O |
CPU가 서로 다른 프로세스에 동시에 실행하기 위해서는 thread가 필요하다.
Context-switching
이라고 한다.sleep
: thread 잠깐 멈추게 하는 것
apt 명령어 설치시, 서비스에 등록이 된다.
서비스 등록이 될시, 실행파일을 직접 찾아서 실행할 필요가 없다.
✔️서비스란 무엇인가?
+
: 실행중인 서비스
-
: 종료된 서비스
sudo service tomcat8 stop
: tomcat8 서비스 종료
netstat -nlpt
: 현재 실행중인 tcp 확인
sudo service tomcat8 start
: tomcat8 서비스 시작
netstat -nlpt
: 현재 실행중인 tcp 확인
다만, 최근들어 서비스 명령어를 거의 사용하지 않는다!
서비스 명령어를 사용하지 말자!
service 명령어는 systemctl의 wrapper script이다.
sudo systemctl list-unit-files
: 실행중인 시스템들이 화면에 출력된다.
ctrl + c
: 종료ex) 실행중인 tomcat8 시스템을 화면에 출력
sudo systemctl status tomcat8
: tomcat8의 현재 상태보기
sudo systemctl stop tomcat8
: tomcat8 종료하기
sudo systemctl start tomcat8
ps -ef
: 실행 중인 프로세스 화면에 출력
tomcat8 2607 1 2 01:56 ? 00:00:03 /usr/lib/jvm/default-java/bi
✔️ 강제종료 - kill
kill
종료 : sigint (ctrl + c) : kill -2 pid
그래서 다시 systemctl start를 해보지만,
여전히 exited (종료)된 상태로 유지된다.
📝 실행되지 않는 이유
kill
명령어를 통해 프로세스를 종료 한 상태이므로, 서비스로 제어해도 동작하지 않는다. (kill → systemctl start x)
그러므로 아예 서비스를 재시작해야 한다. (새로 시작)
Process: 29706 ExecStart=/etc/init.d/tomcat8 start
: /etc/init.d/tomcat8
을 start 하였다.
만약 서비스가 등록되어 있지 않다면, /etc/init.d/tomcat8
을 실행시켜야 한다.
📌 정리
kill -15 pid
sigterm
은 안전한 종료systemctl
입장에서는exit
된 것이다. 안전한 종료 후restart
로만 실행된다.- 왜냐하면
systemctl
입장에서는 종료가 아닌 중지 상태가 이기 때문이다.
또는,
sudo kill 29735
입력
sudo systemctl stop tomcat8
sudo systemctl start tomcat8
해도 서비스를 재시작할 수 있다. (stop + start
==restart
)
ps -ef | grep tomcat8
ps -ef | grep tomcat8 | grep -v grep
awk
: tomcat8 42021 1 1 02:26 ? 00:00:04
와 같이 있을 때 빈칸을 기준으로 한 줄로 나눈다.
tomcat8 : 1번지
42021 : 2번지
1 : 3번지
1 : 4번지
sudo kill ``ps -ef | grep tomcat8 | grep -v grep | awk '{print $2}'
tomcat8
프로세스 강제종료
✔️ 실행할 파일 중에 tomcat8을 중지하고 실행할 수 있다.
./
: 현재 폴더 안에
경로 :/etc/init.d
sudo ./tomcat8 stop
: tomcat 종료
sudo ./tomcat8 start
: tomcat 실행