2011-10-21 24 views
5

Chuyên gia,mã nguồn cho tiện ích shell linux pidof

Làm cách nào để xem mã nguồn cho lệnh shell shell Linux? Dựa trên các câu trả lời cho các câu hỏi liên quan tôi đã kiểm tra trong các lõi của GNU. Nó không phải là có ..

+0

Google cho 'pidof.c', có rất nhiều kết quả. – zoul

Trả lời

5

Nếu bạn đang ở trên hệ thống Debian như Ubuntu bạn có thể thử một cái gì đó trên những dòng này: dpkg -S <utility>, điều này sẽ cho bạn biết gói đã cài đặt tiện ích này; sau đó bạn có thể lấy nguồn bằng cách sử dụng apt-get source <package-name>. Để có được nguồn đảm bảo bạn có deb-src mục trong /etc/apt/sources.list
Ví dụ trên hệ thống Ubuntu tôi sử dụng:

$ dpkg -S pidof 
sysvinit-utils: /bin/pidof 
sysvinit-utils: /usr/share/man/man8/pidof.8.gz 

Vì vậy, các tên gói sysvinit-utils

$ apt-get source sysvinit-utils 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Picking 'sysvinit' as source package instead of 'sysvinit-utils' 
NOTICE: 'sysvinit' packaging is maintained in the 'Svn' version control system at: 
svn://svn.debian.org/pkg-sysvinit/sysvinit/trunk 
... 
dpkg-source: info: extracting sysvinit in sysvinit-2.87dsf 
dpkg-source: info: unpacking sysvinit_2.87dsf-4ubuntu17.4.tar.gz 

gói Nguồn nhặt. Nó cũng thông báo về svn nơi nguồn được duy trì.

$ ls sysvinit* 
sysvinit_2.87dsf-4ubuntu17.4.dsc sysvinit_2.87dsf-4ubuntu17.4.tar.gz 

sysvinit-2.87dsf: 
contrib/ COPYRIGHT debian/ doc/ man/ obsolete/ README src/ 

Tôi chắc chắn phải tương đương với điều này trên các hệ thống không phải Debian. Google có thể giúp bạn.
Hy vọng điều này có thể giúp ích một chút!

Edit: Một ít thông tin cho yum:
1. Tìm kiếm gói: yum whatprovides <package_name> Vì vậy, đối pidof lẽ:

yum whatprovides `which pidof` 

2. Lấy nguồn: yumdownloader --source <source_name>. Bạn có thể cần yum-utils cho việc này. Thông tin thêm tại this link
Mặc dù tôi chưa thử, nhưng tôi đoán bạn có thể chụp!

+0

Cảm ơn. Tôi đang sử dụng RH Enterprise Linux. Tôi đã làm rpm -qf/sbin/pidof đã cho SysVinit-2.86-15.el5.x86_64. Sau đó tôi đã tải về SysVinit-2.86-15.el5.src.rpm, cài đặt nó và đã làm tar -xvf sysvinit-2.86.tar.gz từ/usr/src/redhat/SOURCES /. Tôi thấy việc thực hiện pidof trong killall5.c – Manohar

+0

@Santhosh: Ah ok ... Tôi vừa googled một số nội dung và thêm vào trong chỉnh sửa! Vâng bất cứ điều gì làm việc cho bạn là tốt! Bạn có quyền đó, nó nằm trong 'killall5.c' –

2

Tôi tìm thấy mã nguồn pidof đây: Source Code

+0

Đó là việc triển khai BusyBox, dựa trên chức năng thư viện 'find_pid_by_name()' để thực hiện hầu hết việc nâng hạng nặng. –

+0

Còn về [this] (http://code.google.com/p/secured/source/browse/src/pidof.c?spec=svnd53f28f2475e9a969735475ae95d1e217e40a66e&r=d53f28f2475e9a969735475ae95d1e217e40a66e). – tr4656

Các vấn đề liên quan