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
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?
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.
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.
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]
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 ...
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.
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.
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.
Dê uma olhada aqui:
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 underscreen
and withnohup
. 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.
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
.
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
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
.
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
A solução é como outros programas em python:
shell$ nohup ~/.dropbox-dist/dropboxd &
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