Mam skrypt, który muszę uruchomić po zatwierdzeniu do projektu w ramach kontroli wersji git. Dlatego stworzyliśmy ofertę post-commit w moich projektach .git katalogu w podkatalogu/haki, nazwał ją „post-commit” i dał następującą zawartość:Git Hak po zatwierdzeniu jako zadanie w tle
#!/bin/sh
# I am a post-commit hook
/usr/local/bin/my_script &
my_script jest wykonywalny i działa dobrze w/bin/sh. W rzeczywistości ma czas działania kilku sekund, więc chcę, aby był w tle i odłączony od bieżącej powłoki. Dlatego umieszczam na haku ciągnącą się "&".
Problem polega na tym, że "&" wydaje się być ignorowany. Kiedy zatwierdzam używanie gitx 0.7.1 pod OSX Lion, gitx zawiesza się dokładnie na czas, który musi wykonać mój_script.
Bardzo dużo próbowałem, ale sam proces nie został wprowadzony w tło.
Co jest nie tak?
David, w międzyczasie znalazłem podobne podejście: nohup/usr/local/bin/my_script 2> & 1>/dev/null & – GeorgieF
Niezupełnie poprawna odpowiedź, ale poprowadzi niektórych ludzi: rozważ wdrożenie prawdziwego demona. Jeśli w ruby możesz użyć Daemon lub przeczytać podstawy tego, co powinieneś robić w tym opisie demona działającego w systemie Unix: http://daemons.rubyforge.org/Daemons.html –