Thắc Mắc Cách Start, Stop Service Java Bằng Command Line

QuangTrung93

Member
28/5/15
32
9
8
26
Giả sử mình có chương trình Service.java như thế này

Code:
public static void main(String[] args) {
	boolean stop = args.equals("stop");
	while (!stop) {
	 // do some thing
	}
// clean resources (ex: close connection db)
}
Ban đầu chạy chương trình mình dùng lệnh nohup java -jar service.jar start để chạy như một background process. Sau đó nếu mình gõ lệnh service stop thì service đang chạy sẽ đọc được giá trị này và dừng chương trình lại. Mình search trên mạng thấy họ đều chỉ cách kill process nhưng như thế thì sẽ dẫn đến trường hợp leak memory, hoặc break data nếu chương trình đang thực hiện dở công việc. Mọi người ai biết hoặc có keyword nào chỉ giúp minh với. thank
 

Joe

Thành viên VIP
21/1/13
2,701
1,246
113
It's an internal process communication. If you want to control a background JAVA process using another JAVA process you have to work with:
  1. socket
  2. JMX
  3. intermediator, e.g. as a sharing file