SubGit’i bir başlangıç ​​hizmeti olarak çalıştırmak için kurulmuş bir yapılandırma dosyası var mı?


0

Başlangıcı, yeniden başlatma işlemi sırasında işleri kapatmak ve başlatmak için doğru yol gibi görünüyor, ancak SubGit belgelerini araştırarak ve genel bir web aramasıyla yapılandırma dosyalarını bulamadım.

Benim durumumdaki start ve stop komutları aşağıdaki gibi basittir, ancak hem kullanıcı adı hem de repo yolu kullanıcı kurulumuna bağlıdır:

sudo -u subgit subgit install /dev.git    # start
sudo -u subgit subgit uninstall /dev.git  # stop

/Etc/init/subgit.conf (SubGit'te SVN_REPOS / conf / subgit.conf ile karıştırılmamalıdır) çalışan bir kopyasını uygulamak üzereyim ve bekleyen daha iyi cevaplar yayınlayacağım.

Not: SubGit, Subversion ve Git arasında köprü kurmanın özel bir uygulamasıdır.

Yanıtlar:


0

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 listunutmayın service --status-all:

rsage@subgit:~$ initctl list | grep subgit
subgit (/dev.git) start/running, process 2974
subgit (/matlab.git) start/running, process 2507
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.