मैं 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
, या वहाँ केवेट हैं, और इस प्रकार इसे प्राप्त करने के बारे में और अधिक स्थिर या सुरक्षित तरीके हैं?