среда, 25 июля 2012 г.

Upstart hangs workaround

Иногда встречаю проблемы с Upstart скриптами на ubuntu 10.04, когда процесс аварийно завершился, а upstart это пропустил, и процесс висит stop/killed или start/killed с несуществующим pid.
В launcpad есть bug по этому поводу: https://bugs.launchpad.net/upstart/+bug/406397
Где то в середине проскакивает ссылка на скрипт, с решением проблемы. Скрипт весьма брутален- он создает процессы до тех пор, пока не будет создан процесс с зависшим pid. Мне, однако это помогло.
Ссылка на скрипт: http://heh.fi/tmp/workaround-upstart-snafu
На случай, если ссылку удалят...

среда, 11 июля 2012 г.

Git сервер с gitosis и gitweb


С десктопа:
scp ~/.ssh/id_rsa.pub gitserver:~/admin_rsa.pub


С сервера:
sudo apt-get update
sudo apt-get install git-core gitosis gitweb
sudo -H -u gitosis gitosis-init < ~/admin_rsa.pub

Изменить в /etc/gitweb.conf
$projectroot = "/srv/gitosis/repositories";

Веб интерфейс будет доступен по адресу http://gitserver/gitweb

Администрирование через gitosis:
git clone gitosis@gitserver:gitosis-admin.git
cd gitosis-admin
vim gitosis.conf

Добавить:

[group developers]
writable = project1 project2
members = developer1 developer2

project1, project2 - новые репозитории. будут созданы при первом коммите в него
developer1, developer2 - пользователи. необходимо заранее положить .pub ключи (ключи так и должны называться developer1.pub, developer2.pub) в директорию keydir.

git add .
git commit -m 'added projects project1, project2 and users developer1, developer2'
git push

Теперь с компьютера developer1:
mkdir project1
cd project1
git init
touch README
git add .
git commit -m 'initial commit'
git remote add origin gitosis@gitserver:project1
git push origin master

С компьютера developer2:
git clone gitosis@gitserver:project1