Executar uníssono em segundo plano na inicialização?

2

Estou usando o Debian 6 64bit.

O que estou tentando fazer é executar o Unison na inicialização para monitorar constantemente os arquivos no servidor LAMP em execução na VM e sincronizá-los com a pasta VM Shared.

while true
do
    unison -batch -owner -group /folder1/ /folder2/
    sleep 10
done

Agora, posso obter esse script para ser executado na inicialização ... mas o problema é que ele é interrompido. Mesmo se eu usar nohup, ele fica na caixa de diálogo nohup.

Além disso, se houver uma maneira que eu possa usar nohup eu realmente prefiro não registrar nada. No entanto, não consigo encontrar essa opção em nenhuma documentação nohup ou unison. Eu posso estar negligenciando isso, mas não consigo encontrá-lo.

Tenho certeza de que há uma maneira de vincular o Apache a outra pasta e apenas usá-la ... mas ainda quero saber como fazer isso, porque também posso usá-la em diferentes contextos.

Obrigado

    
por mawburn 22.04.2012 / 22:44

2 respostas

1

Por que não apontar o Apache para sua pasta compartilhada na VM? Isso é tão simples quanto adicionar / alterar um arquivo para o seu virtualhost (eu acredito que você tenha feito isso de qualquer maneira). Isso permitirá que você não espere de 5 a 10 segundos enquanto a raiz do documento do servidor estiver sendo atualizada.

No entanto, o que você realmente pede é executar periodicamente algum comando, então, no final, você só precisa de um cron job. Esta resposta pode ser útil para você .

Então você acabou de adicionar ao seu arquivo crontab:

* * * * * unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1
* * * * * sleep 10; unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1
* * * * * sleep 20; unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1
* * * * * sleep 30; unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1
* * * * * sleep 40; unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1
* * * * * sleep 50; unison -batch -owner -group /folder1/ /folder2/ >/dev/null 2>&1

O >/dev/null 2>&1 significa redirecionar a saída stdout e stderr, ou seja, remover todo o log.

    
por 23.04.2012 / 00:35
0
vi /etc/sysconfig/unison.env

adicione export HOME=/path/to/home (por exemplo: export HOME=/home/user1 )

vi /etc/init.d/unison

adicione estas linhas:

#!/bin/bash
# chkconfig: 2345 20 80
# description: unison service

# add this line to avoid 'Fatal error: exception Util.Fatal("Environment variable HOME not found")'
. /etc/sysconfig/unison.env
case $1 in
    start)
        unison -batch -owner -group /folder1/ /folder2/ &
    ;;

    stop)
        ps aux | grep -v grep | grep unison | awk '{print $2}' | xargs kill -9
    ;;

    *)
        echo "Usage: service unison {start|stop}"
    ;;
esac

inicialização de configuração

chkconfig unison on
    
por 13.01.2016 / 15:00