हालाँकि, स्टार्ट कमांड सरल है, यह एक जावा प्रोग्राम को कॉल करता है जो कुछ समय के लिए कांटा जाता है, जिससे अपस्टार्ट मुद्दे पैदा होते हैं। सौभाग्य से, जॉन्जमस्मिलर ने स्टैकऑवरफ्लो को इस प्रकार के मुद्दे के लिए वर्कअराउंड पोस्ट किया ।
हालांकि, उदाहरण के लिए पैरामीटर-उप-कमांड कमांड (सर्वर पर कई रिपोज को चलाने की अनुमति देता है) के लिए ऊपर की ओर आवरण प्रदान करने के लिए लगता है, एक 'उदाहरण-आधारित नौकरी का उपयोग करना यह स्वतः शुरू करने / रोकने के लिए अव्यावहारिक बनाता है। इसके बजाय, मैंने अपने रिपॉजिट के लिए /etc/rc.local (सबसे नीचे दिखाया गया है) के लिए स्टार्ट कमांड जोड़े हैं।
# subgit.conf - subgit job file
description "service for running SubGit mirroring"
author "Randy Sage"
# Note: because subgit forks too many times, normal upstart controls do not work
# Instead, use the method at https://stackoverflow.com/a/12217085/527489
# Run with subgit/gitshare ids, since we use shared gitshare access to repos
setuid subgit
setgid gitshare
instance $repo
pre-start exec subgit install $repo # actually start
script # dummy process tracking java app
while ps aux | grep "java.*$repo" | grep -v grep >/dev/null ; do
sleep 1
done
end script
post-stop script
if ps aux | grep "java.*$repo" | grep -v grep >/dev/null ; then
subgit shutdown $repo
fi
end script
यहाँ /etc/rc.local कमांड दिए गए हैं:
...
start subgit repo=/matlab.git
start subgit repo=/dev.git
exit 0
ध्यान दें कि सेवाएं इस तरह से शुरू हुईं initctl list
, लेकिन वे service --status-all
निम्न नहीं हैं :
rsage@subgit:~$ initctl list | grep subgit
subgit (/dev.git) start/running, process 2974
subgit (/matlab.git) start/running, process 2507