나는 nohup
과거에 대규모 백그라운드 작업을 실행했지만 많은 사람들이 다음을 사용하는 것을 발견했습니다.screen
이 맥락에서. screen
내가 인식하지 못하는 일종의 기능적 이점을 제공 합니까 , 아니면 단지 선호의 문제입니까?
답변1
둘 다 고유한 장점과 단점이 있습니다.
북쪽면:
- nohup은 웹 서버나 기타 유사한 서버 프로세스와 같이 프로세스에 사용자 입력이 필요하지 않은 경우 백그라운드에서 프로세스를 실행하는 데 이상적입니다.
- nohup은 프로세스가 실행되는 디렉터리에 로그를 생성합니다. 로그 파일 이름은
nohup.out
. - CtrlC잘못된 + 또는 유사한 키 조합 으로 인해 프로세스가 종료되는 것을 방지합니다 . 단지 보증일 뿐입니다.
- 일반적으로 기본 설정으로 기본적으로 설치됩니다. 스크린처럼 따로 설치할 필요가 없습니다.
- 그 기능은 백그라운드에서 작업을 실행하고 출력을 덤프하는 데 매우 구체적입니다. 메모리 집약도가 낮습니다.
화면:
- 별도의 설치가 필요합니다. 데이터 센터에 가거나 아무 상자에나 로그인하여 화면이 나타나기를 기대할 수는 없습니다.
- 다양한 테마로 여러 터미널을 관리하고 이름을 지정하는 데 효과적입니다.
- 무한한 시간 동안 프로세스를 실행하는 nohup과 같은 명령이라기보다는 터미널 관리자에 가깝습니다.
- 프로세스에 사용자 입력이 필요한 경우 더 적합합니다. 설치 스크립트와 마찬가지로 예/아니오 프롬프트가 있습니다.
- 많은 기능을 통해 메모리가 제공됩니다. 하지만 일부 기능은 정말 멋지다는 점에 동의합니다.
@rahmu, 나는 그것을 죽이려고 할 때 pid를 추측하지 않을 것입니다. 누군가/무언가를 죽이기 전에 항상 확인하세요 ;).
두 경우 모두 가장 좋은 접근 방식은 screen 및 nohup 입니다
ps -eaf | grep "nohup" | grep "your proc name/keyword"
.
화면을 사용하여 화면에서 무엇이 실행되고 있는지 확인하세요.
전체적으로, 그것들은 서로 다른 의제를 가진 서로 다른 두 가지이기 때문에 비교가 어렵습니다.
답변2
화면많은 기능이 있습니다. 이는 단순한 "데몬"이 아니라 터미널의 창 관리자와 비슷합니다.
어떤 시점에서 프로세스에 입력이 필요한 경우 이를 사용할 수 있으며 프로세스의 출력을 검사하고 해당 터미널에 다시 연결할 수 있습니다.
따라서 아니요, 이는 단순히 선호도의 문제가 아니며 전혀 동일한 것이 아닙니다.
답변3
screen
다음을 수행할 수 있습니다.
- 실제 실행 화면으로 돌아가서 신호를 보내고, 얼마나 빨리 가는지 확인하고, 오류 메시지가 있는지 확인하는 등의 작업을 수행합니다.
- 의미 있는 제목으로 프로세스 이름을 지정하세요. 프로세스를 종료하려면 해당 프로세스 ID를 추측할 필요가 없습니다.
답변4
nohup
데이터베이스 필드 디버깅을 통해서도 프로세스 진행 상황을 확인할 수 있습니다.ps ax | grep nohup
프로세스의 ID가 표시되며 이를 종료할 수 있습니다.nohup
상대적으로 빠릅니다. 이유는 간단합니다. PC와 서버 간의 인터넷 연결에 따라 다릅니다. 인터넷 속도가 느려질 때마다 프로세스도 느려집니다.