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
Trả lời
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
Cảm ơn câu trả lời. – 2vision2
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
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.
Cảm ơn câu trả lời. – 2vision2
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!
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. –
ps aux | grep server – Mikhail
@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