Start komutu basit olmasına rağmen, birkaç kez çatal gibi görünen ve başlangıç sorunlarına neden olan bir java programını çağırıyor. Neyse ki, johnjamesmiller , bu tür bir sorun için StackOverflow'a geçici bir çözüm gönderdi .
Aşağıdaki, örnek parametreli subgit komutları için (sunucuda birden fazla havuzun çalışmasına izin veren) başlangıç sarmalayıcısı gibi görünmekle birlikte, 'örnek' tabanlı bir iş kullanmak, bu başlatmanın / durdurmanın otomatik olarak yapılmasını olanaksız kılar. Bunun yerine, repolarım için start komutlarını /etc/rc.local (altta gösterilmiştir) ekledim.
# 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
İşte /etc/rc.local komutları:
...
start subgit repo=/matlab.git
start subgit repo=/dev.git
exit 0
Bu şekilde başlatılan hizmetlerin aşağıdaki gibi göründüğünü initctl list
unutmayın service --status-all
:
rsage@subgit:~$ initctl list | grep subgit
subgit (/dev.git) start/running, process 2974
subgit (/matlab.git) start/running, process 2507