저는 파이썬을 배우고 있어요. 지금까지는 기본적인 Python 코딩만 해봤습니다. 하루 전에 나는 tree
명령의 Python 구현을 확인했습니다. 갑자기 그런 생각이 들었습니다 uptime
. 어떤 언어로 구현되었는지, 복제가 얼마나 복잡한지 모르겠습니다.
하지만 소스 코드를 찾을 수 없습니다. 저는 페도라 14를 사용하고 있습니다. kernel-devel 패키지가 설치되었습니다. whereis uptime
이렇게 했는데 /usr/bin/uptime
vim을 사용하여 열면 결과 파일에 이상한 기호가 표시됩니다. 소스 코드를 인터넷 검색해도 예상되는 결과가 나오지 않습니다. 소스 코드는 어디서 찾을 수 있나요?
답변1
일반적으로 Fedora와 같은 RPM 기반 배포판에서는 특정 명령을 제공하는 패키지 이름을 찾을 수 있습니다 rpm -qf /path/to/command
. 이와 같이:
$ rpm -qf $( which uptime )
procps-3.2.8-18.20110302git.fc16.x86_64
그런 다음 를 사용하여 소스 RPM을 다운로드할 수 있습니다 yumdownloader --source procps
. (yumdownloader는 yum-utils
아직 설치하지 않은 경우 패키지에서 제공됩니다.) src.rpm이 있으면 rpm -i
이를 사용하거나 압축을 풀 수 있습니다 rpm2cpio
.
또는 대부분의 경우 RPM 패키지에서 프로젝트 URL을 쿼리할 수 있으며 이는 업스트림 소스를 찾는 데 도움이 될 수 있습니다.
$ rpm -qi procps|grep ^URL
URL : http://gitorious.org/procps
그리고 코드는 온라인에서 쉽게 찾아볼 수 있습니다. 주의 깊게 읽으면 기본적으로 그것이 하는 일은 /proc/uptime
아름답게 읽고 인쇄하는 것뿐입니다.
답변2
가동 시간은 "procps" 패키지의 일부이며 업스트림 소스는 다음 위치에 있습니다.http://procps.sourceforge.net/ (페도라 사용자가 아니므로 .src.rpm을 어디서 찾을 수 있는지 잘 모르겠습니다).
그러나 묻지 않은 질문에 답하려면 /proc/uptime을 살펴보세요. 첫 번째 숫자는 부팅 이후의 시간(초)입니다. 이것을 매우 쉽게 사용할 수 있는 것으로 바꿀 수 있어야 합니다 :)