2013-01-04 40 views
8

Tôi chạy một máy chủ có thể thực thi trong Centos bằng cách sử dụng lệnh sau "nohup server &". Bây giờ tôi cần phải giết quá trình "server". Nhưng tôi đã thử lệnh "ps -a" để nhận số PID nhưng tôi không thể nhận được quy trình. Bây giờ làm thế nào để giết "server" bây giờ?Tìm quy trình chạy bằng lệnh nohup

+2

ps auxwww | grep -i 'server' phải trả lại tất cả quy trình có 'máy chủ' trong đó. Nếu không, máy chủ có thể đã dừng. –

+1

ps aux | grep server – Mikhail

+0

@Usman saleem nhờ điều này giải quyết được câu trả lời của tôi. Tôi có một nghi ngờ nữa "nohup server &" là lệnh đúng, để chạy một quá trình backgroung ngay cả khi tôi đóng terminal? – 2vision2

Trả lời

15

ps auxwww|grep -i 'server' nên trả lại toàn bộ quá trình trong đó có server trong đó. Nếu không, máy chủ có thể đã dừng.

Bạn sẽ có thể để xác định PID (và lưu nó trong một tập tin) như sau:

nohup server & 
print $! >> my_server.pid 
+0

Cảm ơn câu trả lời. – 2vision2

1

Cách tốt nhất để khởi chạy máy chủ bằng centos là sử dụng lệnh dịch vụ.

Vì vậy service httpd start

Có một cơ hội mà bạn muốn viết chương trình của bạn như một daemon

Một daemon (hoặc dịch vụ) là một quá trình nền được thiết kế để chạy độc lập, với ít hoặc không can thiệp của người dùng. Apache web máy chủ http daemon (httpd) là một ví dụ như một daemon. Nó chờ đợi trong nền nghe trên các cổng cụ thể và phục vụ các trang hoặc xử lý tập lệnh, dựa trên loại yêu cầu.

Xem http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

+0

Tôi chỉ cần chạy nền tảng thực thi của mình? bạn có thể đưa ra một số ví dụ? – 2vision2

+0

@ 2vision2 bạn muốn viết chương trình của mình như một trình nền Linux xem http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html – Mikhail

+0

Cảm ơn câu trả lời – 2vision2

2

Không có cách nào dứt khoát để bắt quá trình chính xác với sự giúp đỡ của ps lệnh, nhưng bạn có thể sử dụng như sau:

ps -a | grep "server" 

bạn sẽ nhận được một danh sách của tất cả các tiến trình đang chạy với cái tên "máy chủ"

Hoặc, bạn có thể sử dụng bất kỳ từ khóa khác cũng như để gr ep đầu ra ps.

+1

Cảm ơn câu trả lời. – 2vision2

12

Nếu một file nohup.out đã được tạo ra, bạn có thể chạy trong bash:

# lsof nohup.out 

nó sẽ trả lại pid mà tạo/đang chạy file

Trân trọng!

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