[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
08/02/2012 18:20:54 (+0700) | #1 | 253339 |
monday1010
Member
|
0 |
|
|
Joined: 13/12/2008 23:18:55
Messages: 33
Offline
|
|
Chào các anh em,
Nhờ các anh em nào biết phân biệt giúp mình 2 câu lệnh sau nhé :
- /usr/sbin/httpd
- service httpd start
Thanks a lot. |
|
|
|
|
[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
08/02/2012 19:10:09 (+0700) | #2 | 253343 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Gợi ý:
Code:
$ su -
# file $(which service)
|
|
Let's build on a great foundation! |
|
|
|
[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
09/02/2012 09:02:39 (+0700) | #3 | 253366 |
monday1010
Member
|
0 |
|
|
Joined: 13/12/2008 23:18:55
Messages: 33
Offline
|
|
Chào anh quanta,
Như anh gợi ý thì em chỉ phân biệt được như sau thôi :
- /usr/sbin/httpd : chạy file httpd trong mục /usr/sbin
- service httpd start : chạy script file /sbin/service với parameter httpd, start
Cả 2 câu lệnh trên đều khởi chạy dịch vụ httpd, nhưng nếu cùng làm một việc mà cần 2 lệnh khác nhau làm gì nhẩy ?
Thank anh quanta nhé |
|
|
|
|
[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
09/02/2012 11:09:55 (+0700) | #4 | 253370 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
monday1010 wrote:
Chào anh quanta,
Như anh gợi ý thì em chỉ phân biệt được như sau thôi :
- /usr/sbin/httpd : chạy file httpd trong mục /usr/sbin
- service httpd start : chạy script file /sbin/service với parameter httpd, start
Cả 2 câu lệnh trên đều khởi chạy dịch vụ httpd, nhưng nếu cùng làm một việc mà cần 2 lệnh khác nhau làm gì nhẩy ?
Còn 1 lệnh nữa đấy :
Code:
# /etc/init.d/httpd start
Gợi ý tiếp: giả sử distro bạn đang dùng không có lệnh `service`, Apache được compile từ source, chưa có init script trong `/etc/init.d`, khi muốn stop Apache thì bạn làm thế nào? |
|
Let's build on a great foundation! |
|
|
|
[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
09/02/2012 19:41:59 (+0700) | #5 | 253406 |
monday1010
Member
|
0 |
|
|
Joined: 13/12/2008 23:18:55
Messages: 33
Offline
|
|
quanta wrote:
Gợi ý tiếp: giả sử distro bạn đang dùng không có lệnh `service`, Apache được compile từ source, chưa có init script trong `/etc/init.d`, khi muốn stop Apache thì bạn làm thế nào?
Câu này của anh quanta khó à nha
Em là dân network thôi, nhưng công ty đang thiếu người nên phải nghiên cứu he he
Đọc gợi ý của anh em đoán thế này:
- /usr/sbin/httpd : có là do người dùng cài đặt gói apache
- service httpd start : là do distro cung cấp cho người dùng
- /etc/init.d/httpd : sử dụng lúc khởi động hệ thống thì bật httpd luôn (sử dụng chkconfig httpd on)
Ý em muốn là khi mình sử dụng ( chkconfig httpd on ) thì khi hệ thống boot sẽ bật httpd bằng lệnh ( /usr/sbin/httpd ) bởi vì mấy ông lập trình bảo bật httpd bằng lệnh này mới dùng được gói php-soap gì đó hihi
Cảm ơn anh.
|
|
|
|
|
[Question] Nhờ phân biệt lệnh /usr/sbin/httpd và service httpd start |
09/02/2012 20:40:48 (+0700) | #6 | 253417 |
|
vulehcm
Member
|
0 |
|
|
Joined: 21/11/2011 20:37:50
Messages: 46
Offline
|
|
monday1010,
Chào bạn, đáng lẽ ra mình nên để cho bạn tìm hiểu tiếp như thế thì mới thú vị. Nhưng mình nghĩ thời gian của bạn có hạn nên thay vì chơi đánh đố mình sẽ giải thích ra những vấn đề bạn thắc mắc, và nếu bạn thích hoặc cảm thấy chưa đủ thì có thể tìm hiểu thêm để có câu trả lời hoàn thiện hơn.
Đầu tiên bạn nên tìm hiểu khái niệm biến môi trường (environment variable) và $PATH là một trong những biến đó. $PATH là biến môi trường chứa các đường dẫn, và nếu như bạn gõ vào terminal một dòng ví dụ như hvaonline thì bash sẽ tìm kiếm file hvaonline trong những đường dẫn mà biến $PATH đã nêu ra.
Ví dụ biến $PATH của root
Code:
root@debian:/sbin# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@debian:/sbin#
Điều này đồng nghĩa với việc nếu bạn có file httpd trong thư mục /sbin thì bạn chỉ việc gõ vào trong terminal lệnh httpd là bash sẽ tự động chạy file httpd trong thư mục /sbin. Các file trong thư mục /sbin này chủ yếu là file nhị phân (binary file) và một số là đường dẫn đến file khác (softlink - symlink - symbols link).
Thư mục /etc/init.d/ là thư mục chứa các script khởi động dịch vụ. Các script này bạn có thể dùng cat để coi. Những script được đặt trong này thường sẽ được chạy vào lúc khởi động hệ thống, và bạn định nghĩa (khai báo) những script được chạy thông qua lệnh chkconfig.
Lệnh service là lệnh "run system V script" (trích luôn trong man service), có nghĩa là nếu bạn chạy service ... start thì có nghĩa là nó sẽ chạy file /etc/init.d/... start. Hay nói cách khác thì service có thể được xem là thay thế cho dòng /etc/init.d/ để tiết kiệm chữ hơn, và dĩ nhiên nó cũng có một vài lợi ích khác nhưng không bàn ở đây, ví dụ như xem list các dịch vụ đang chạy (service --status-all).
Giờ thì mình gợi ý tiếp bạn tìm hiểu các keyword sau đây : system V, run level. |
|
|
|
|
|