2014-04-18 2 views
2

며칠 전 원격 서버 (루트가 아닌)에서 여러 인스턴스의 응용 프로그램 (Matlab)을 실행했습니다. 각 인스턴스는 출력을 로그 파일로 리디렉션합니다.프로세스의 히스토리 명령 받기

오늘 출력을 특정 로그 파일로 리디렉션하는 프로세스를 중단하고 싶습니다. 그 로그 파일의 이름과 해당 응용 프로그램의 모든 실행중인 프로세스의 PID를 알고 있습니다. 하지만 어떤 PID가 해당 로그 파일에 해당하는지 알지 못합니다.

제 질문은 해당 로그 파일에 쓰고있는 PID를 찾는 방법입니다. 또는 적어도 며칠 전에 명령 기록을 얻으십시오. 그래서 내가 그 명령을 실행 한 시간을 추정하고, 현재의 PID의 실행 시간과 비교하여 가장 가까운 것을 찾으십시오.

참고 : 내역은이지만 아직 로그인 한 상태의 오늘의 내역 만 표시합니다. 자주하는 일은 서버에 로그인하여 프로세스를 시작한 후 로그 아웃하고 다시 로그인하는 것입니다. 다음 날 결과를 볼 수 있습니다.

+1

명령 이력은 사용자가 아니라 프로세스와 관련이 있습니다. 어떤 파일이 어떤 프로세스에 의해 열려 있는지 찾는 방법이 있습니다. 그냥 인터넷 검색을 해보십시오. – kirilloid

+0

건배. @skwllsp가 제안한 _fuser_은 별개로, _lsof_와 비슷한 기능을 가지고 있습니다. –

답변

4

내 질문이

fuser - identify processes using files or sockets 

그래서 로그 파일에 기록 된 PID를 찾는 방법입니다,이 할 :이 같은 명령을 시작한 경우

fuser filename 
+0

그게 내가 찾는거야. tnx –

+1

또한 [lsof (8)] (http://linux.die.net/man/8/lsof)를 사용할 수도 있습니다. –

1

를 :

command > logfile.1 

프로세스를 얻으려면 ps aux | grep logfile.1을 실행할 수 있습니다.

관련 문제