Como rodar o daemon do Dropbox em segundo plano?

37

Estou usando o Debian 6 e o Dropbox. Eu segui estes comandos para instalá-lo.

Quando executo ~/.dropbox-dist/dropboxd - o Dropbox funciona e outras coisas. O problema é que quando eu fecho o terminal ou, pior ainda - reinicie, o Dropbox pára de funcionar e eu preciso rodar esse daemon novamente.

Como posso fazer o computador iniciar automaticamente esse daemon em segundo plano?

    
por daGrevis 03.04.2012 / 18:49

15 respostas

49

Se você estiver executando o daemon por conta própria, inicie-o no momento da inicialização com Cron . Execute crontab -e para editar o seu arquivo crontab e adicione a linha

@reboot ~/.dropbox-dist/dropboxd
    
por 04.04.2012 / 02:49
13

execute o comando desta forma:

($HOME/.dropbox-dist/dropboxd &)&

isso separará o processo do terminal real e o colocará em segundo plano real.

Você ainda precisará reiniciá-lo manualmente após a reinicialização.

    
por 07.02.2013 / 15:19
11

Aqui está a minha solução. Isso está no Debian 8.

Instale o Dropbox conforme as instruções padrão. Até agora, eu só tenho um usuário conectado, eu não sei se isso vai funcionar com vários usuários como dropbox parece registrar a máquina e não a conta de usuário do Linux. Se você souber como obter várias contas de usuário em um servidor, entre em contato conosco.

link

Em seguida, instale o script de controle do python instruções mas coloque-o em / usr / bin e não na sua pasta de diretório inicial.

Crie o arquivo /lib/systemd/system/[email protected]:

[Unit]
Description=Dropbox as a system service user %i

[Service]
Type=forking
ExecStart=/usr/bin/dropbox start
ExecStop=/usr/bin/dropbox stop
User=%i
Group=%i
# 'LANG' might be unnecessary, since systemd already sets the
# locale for all services according to "/etc/locale.conf".
# Run 'systemctl show-environment' to make sure.
Environment=LANG=en_US.utf-8

[Install]
WantedBy=multi-user.target

Ativar o serviço para o usuário fred:

$ sudo systemctl enable [email protected]

Em seguida, inicie o serviço:

$ sudo systemctl start [email protected]
    
por 26.12.2015 / 19:43
5

Você também pode executar como um daemon fazendo daemon $HOME/.dropbox-dist/dropboxd .

Isso tem a vantagem de, se você também passar o sinalizador -n/--name , usar daemon --[running|restart|stop] -n <name> para controlar o processo.

Talvez alguém mais possa aproveitar a melhor maneira de obter daemons usando daemon para serem executados na inicialização ...

    
por 14.08.2013 / 00:29
3

Você pode encontrar scripts init.ds do Debian e do Ubuntu , basta copiar para /etc/init.d/dropbox e personalizar com o nome de usuário.

Ativar no debian com chkconfig --add dropbox . Em seguida, execute como qualquer outro serviço.

    
por 14.10.2014 / 11:26
3

Aqui está a minha solução para distribuições Linux usando o Upstart 1.4 e superior.

Salve o conteúdo abaixo em um arquivo de configuração em /etc/init , por exemplo: /etc/init/db_user.conf :

# Dropbox upstart script for user db_user, db_user can be replaced by anything you like.

description "Dropbox db_user"
author "myth384"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

setuid db_user
# The next two lines are optional. I use these to be able to share the 
#   Dropbox using Samba. Within group shareusers are all Samba users.
# setgid shareusers
# umask 0002

# The next line is necessary to be able to synchronise files with non-ASCII characters.

env LANG="en_US.UTF-8"     
exec /home/db_user/.dropbox-dist/dropbox

Para iniciar o daemon sem reiniciar:

sudo start db_user

NOTA: Ao remover o comentário da linha setgid, não é necessário definir o sinalizador setgid na pasta .dropbox.cache , conforme indicado por outras fontes na Internet.

    
por 31.07.2013 / 13:34
2

Você pode usar screen :

screen -dmS ~/.dropbox-dist/dropboxd

Isto irá iniciar como um daemon e no modo separado.

Você teria que escrever seu próprio script init.d para que ele fosse executado como serviço dessa forma e adicionar uma linha após #!/bin/bash para chkconfig e adicionar os níveis de execução necessários, como 2, 3, 4, 5. Diferentes distribuições têm diferentes níveis de execução, então você deve verificar isso.

    
por 09.09.2013 / 02:01
2

Dê uma olhada aqui:

link

Um usuário mencionado:

Just thought I'd mention:

(a) the latest distributions seem to make this fairly straightfoward, just run dropbox start from the command line, BUT (b) watch out for logging in and out with X11 forwarded.

I've set up a lot of Bash aliases for connecting to various machines, and they all include the -X option to forward X11 packets. Because of this, Dropbox kept dying on my on logout, even running it under screen and with nohup. Apparently, having X11 forwarded was causing Dropbox to connect the dbus process on my local machine rather than on the remote machine; so, when I broke the connection, Dropbox was seeing dbus as having terminated and thus was terminating itself.

Just FYI, as this stumped me for a bit. The key was that I was having to press Ctrl-C even after logging out / running exit on the remote machine. Apparently, SSH was keeping the session open, even though I had exited Bash, because of the remaining open connection.

A solução é simples, mesmo que um (por algum motivo) queira manter o ssh-ing com o -X : antes de iniciar o Dropbox, você deve "quebrar" o encaminhamento, por exemplo:

$ unset DISPLAY

Se isso for feito em um script Bash, o encaminhamento será "quebrado" dentro do script, mas assim que ele for executado, o 'terminal' continuará encaminhando.

    
por 07.08.2016 / 09:33
1

Existe uma maneira bastante interessante de adicionar isso ao init.d descrito aqui . Você tem que adicionar quais usuários você quer que o Dropbox inicie no script init (fácil), e quando o sistema inicializar, ele irá iniciar o daemon Dropbox para cada um desses usuários.

A única coisa a notar é que eles especificam DAEMON=.dropbox-dist/dropbox , o que acredito ser incorreto. O autor esqueceu o d no final disso - deve ser DAEMON=.dropbox-dist/dropboxd .

    
por 09.01.2014 / 21:29
1

Pode não ser útil para todas as distribuições do Linux, mas no CentOS 7, no menu Applications / System Tools / , abra ' Startup Applications '. Em seguida, clique em Adicionar e insira este comando:

/home/username/.dropbox-dist/dropboxd

ou

/home/.dropbox-dist/dropboxd

    
por 06.12.2016 / 01:38
0

Eu adicionei as seguintes linhas ao final do meu arquivo .profile. Eu prefiro ter a inicialização do computador no terminal. No entanto, se eu iniciar o X11 depois disso, o miniaplicativo da caixa de depósito não será exibido na bandeja do sistema.

dropbox running
rv=$?
if [ $rv -eq 0 ]; then
    dropbox start;
fi
    
por 19.02.2013 / 19:54
0

Este site parece ter informações completas sobre como instalar e configurar o Dropbox no Linux, incluindo o download e a instalação do CLI, criando links soft fora do Dropbox e executando o Dropbox como um daemon. O último fornece um script init.d que permitirá que dropboxd seja controlado com service e chkconfig .

link

    
por 19.10.2016 / 22:19
0

faça o download do script fornecido pelo dropbox link e corra

python dropbox.py start

Se você não tiver python, precisará do pyhon para executar este

    
por 14.02.2018 / 12:15
-1

A solução é como outros programas em python:

shell$ nohup ~/.dropbox-dist/dropboxd & 
    
por 28.11.2013 / 09:20
-2

Acho que a melhor maneira é criar um novo arquivo em / usr / bin com este código:

#!/bin/bash

~/.dropbox-dist/dropboxd

salve e nomeie como "dropbox". Agora você pode executar a partir do console em segundo plano ou criar um atalho no menu / área de trabalho

    
por 27.07.2013 / 03:07