กำหนดค่า java daemon ด้วย systemd
ฉันกำลังใช้คำจำกัดความนี้สำหรับsystemdงาน: [Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target สคริปต์ถูกเรียกใช้ดังต่อไปนี้ (การเรียกรูทีนแบบง่ายที่ฟังบนซ็อกเก็ต tcpip และผนวกอินพุตกับไฟล์): #!/bin/sh cd /home/user/tmp/testout nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar </dev/null >/dev/null & หลังจากsystemctl start somejobกระบวนการแสดงว่ากำลังทำงานพร้อมกับพาเรนต์init: user@CANTANDO ~$ ps -u dlt eo pid,ppid,command PID PPID COMMAND 8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar หลังจากดำเนินการsystemctl stop somejobตามกระบวนการจะไม่ปรากฏอีกต่อไป (และปิดพอร์ต) ดังนั้นทุกอย่างจึงดูดีและสวยงาม คำถามของฉันคือ: นี่เป็นวิธีแก้ปัญหาที่ยอมรับได้สำหรับการเรียกใช้จาวาดีมอนsystemdหรือมีคำเตือนหรือไม่