আমি এই সংজ্ঞাটি একটি systemd
কাজের জন্য ব্যবহার করছি :
[Unit]
Description=Some job
[Service]
ExecStart=/usr/local/sbin/somejob
User=dlt
Type=forking
[Install]
WantedBy=multi-user.target
স্ক্রিপ্টটি নিম্নরূপে বলা হয় (একটি সাধারণ রুটিনকে কল করা যা একটি টিসিপিপ সকেটে শোনে এবং কোনও ফাইলে ইনপুট সংযোজন করে):
#!/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
, বা সেখানে সতর্কতা রয়েছে এবং এর ফলে এটি অর্জনের পথে আরও আরও স্থিতিশীল বা সুরক্ষিত উপায় রয়েছে?