티스토리 뷰
인텔리제이에서 Run했더니
web server failed to start. port 8080 was already in use ~ 에러가 나왔다.
나는 초보도 아니고 궁서체 보초 수준이라서 살짝 당황했지만 침착하게 구글링을 했다.
하라는대로 터미널에 lsof -i :8080를 치니 여러 프로세스가 8080포트를 사용하고 있었다.
암튼 이 프로세스를 죽이면 된다고 kill -9 PID 를 입력하라고 해서 했더니 아주 깔끔하게 지워졌다.
해결은 했는데...
내가 이런 커맨드에 익숙하지 않아서 이 생태계(?)를 잘 모르는 상태라 그런지는 몰라도
-e 이런식으로 영어가 적힌건 많이봤어도 -9 처럼 숫자가 있는게 너무 신기해서(..) 이 9가 무슨뜻인지 갑자기 너무 궁금해졌다.
우선
kill -<signal> <pid>
이런식으로 사용하고 가운데 9자리에 오는 것은 signal에 해당한다.
signal을 줘도 되고 안줘도 되어서 kill pid로만 쓸 수 있는데, 이는 사실 kill -15 pid와 같다.
15는 SIGTERM의 번호이며, SIGTERM은 프로세스에게 정상적인 종료를 요청하는 신호다. (15대신에 SIGTERM를 사용해도됨)
kill pid == kill -15 pid == kill -SIGTERM pid
다만 프로세스가 응답이 없을경우 이 요청을 무시하게 되는데, 이때 사용할 수 있는것이 9다.
9는 SIGKILL의 번호이며, SIGTERM은 프로세스를 강제종료하는 신호다. (이것도 9대신에 SIGKILL사용해도됨)
kill -9 pid == kill -SIGKILL pid
프로세스가 이 신호를 받으면 즉시 종료된다.
즉시 종료되기 때문에 마무리 작업을 할 수 가 없으니,
프로세스가 자원을 정리하지 않는다거나, 저장하지 않은 데이터가 날아간다거나 하는 부작용이 있을 수 있다고 한다.
되도록 15를 사용하여 kill을 하라는데 나는 kill -9 pid를 한 후에 그 사실을 알게되었다. ㅎ;
별건 아니지만 개인적으로 흥미롭게 알게된 사실이라 정리해본다.
'공부' 카테고리의 다른 글
[Github] Support for password authentication was removed on August 13, 2021 / Fine-grained vs classic (1) | 2023.11.27 |
---|---|
[TIL] AVIF. itemProvider.canLoadObject(ofClass: UIImage.self)가 false로 나오는 건에 대하여 (1) | 2023.10.11 |
[TIL] UIImagePickerController.isSourceTypeAvailable (0) | 2023.10.06 |
[Python] 전역 변수 사용시 주의할 점 / global (0) | 2023.09.13 |
[Python] 기초 문법들 끄적 (1) | 2023.09.09 |
- Combine
- fastlane
- IOS
- 회고
- 스위프트 문법
- actor
- np-complete
- WidgetKit
- Accessibility
- Git
- 피아노
- SwiftUI
- WKWebView
- FLUTTER
- swift sort
- swift array
- WWDC
- swift 공부
- 제이슨 파싱
- np-hard
- UIBezierPath
- Xcode
- 스위프트
- iOS delegate
- swift delegate
- Swift
- github
- ios 13
- swift tutorial
- swift3
- Total
- Today
- Yesterday