web-dev-qa-db-ja.com

Dropboxデーモンをバックグラウンドで実行する方法は?

私はDebian 6とDropboxを使用しています。インストールするには これらのコマンド に従いました。

~/.dropbox-dist/dropboxdを実行すると、Dropboxが動作します。問題は、ターミナルを閉じるか、さらに悪いことに再起動すると、Dropboxが機能しなくなり、そのデーモンを再度実行する必要があることです。

コンピュータがそのデーモンをバックグラウンドで自動的に起動するようにするにはどうすればよいですか?

40
daGrevis

自分のアカウントからデーモンを実行している場合は、ブート時に Cron を付けて起動します。 crontab -eを実行して crontab ファイルを編集し、行を追加します

@reboot ~/.dropbox-dist/dropboxd

この方法でコマンドを実行します。

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

これにより、プロセスが実際のターミナルから切り離され、実際のバックグラウンドに置かれます。

ただし、再起動後も手動で起動する必要があります。

13
mutek

これが私の解決策です。これはDebian 8にあります。

標準の指示に従ってDropboxをインストールします。これまでのところ、私は1人のユーザーしか接続していません。dropboxがlinuxのユーザーアカウントではなくマシンを登録しているように見えるため、これが複数のユーザーで機能するかどうかはわかりません。 1つのサーバーで複数のユーザーアカウントを機能させる方法がわかっている場合は、お知らせください。

https://www.dropbox.com/en_GB/install?os=lnx

次にpython制御スクリプト 手順 をインストールしますが、ホームディレクトリのbinではなく/ usr/binに配置します。

ファイル/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

ユーザーfredのサービスを有効にします。

$ Sudo systemctl enable [email protected]

次に、サービスを開始します。

$ Sudo systemctl start [email protected]
11
pointer2null

daemon $HOME/.dropbox-dist/dropboxdを実行して、デーモンとして実行することもできます。

これには、-n/--nameフラグを追加で渡す場合、daemon --[running|restart|stop] -n <name>を使用してプロセスを制御できるという利点があります。

おそらく、他の誰かが、起動時にdaemonを使用してデーモンを開始するのに最適な方法にチップを入れることができます...

5
metasoarous

ここを見てください:

https://community.spiceworks.com/topic/131973-dropbox-headless-workstation?page=1#entry-6076539

言及されたユーザー:

ちょうど私が言及したいと思った:

(a)最新のディストリビューションでは、これはかなり単純明快です。コマンドラインからdropbox startを実行するだけですが、(b)X11を転送した状態でのログインとログアウトに注意してください。

さまざまなマシンに接続するために多くのBashエイリアスを設定しましたが、それらにはすべてX11パケットを転送するための-Xオプションが含まれています。このため、Dropboxはscreenの下でNohupを使用して実行しても、ログアウト時に自分で死にます。どうやら、X11を転送すると、Dropboxがリモートマシンではなくローカルマシンのdbusプロセスに接続するようになりました。そのため、私が接続を切断すると、Dropboxはdbusが終了したと見なし、それ自体を終了していました。

ちなみに、これは私を少し困らせたので。キーは私が押さなければならなかったことでした Ctrl-C リモートマシンでログアウト/実行exitした後でも。どうやら、Bashを終了した後でも、開いている接続が残っているため、SSHはセッションを開いたままにしていました。

何らかの理由で-Xを使用してssh-ingを継続したい場合でも、ソリューションは簡単です。Dropboxを起動する前に、転送を「中断」する必要があります。たとえば、次のようにします。

$ unset DISPLAY

これがBashスクリプトで行われる場合、転送はスクリプトの内部で「壊れて」いますが、これが実行されても、「ターミナル」はまだ転送しています。

3
Matteo Duranti

これが、Upstart 1.4以降を使用したLinuxディストリビューション用の私のソリューションです。

以下の内容を/etc/initの下の構成ファイルに保存します。例:/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

再起動せずにデーモンを起動するには:

Sudo start db_user

注:インターネット上の他のソースで示されているように、setgid行のコメントを外すことで、.dropbox.cacheフォルダにsetgidフラグを設定する必要はありません。

3
Alain

DebianおよびUbuntu init.dスクリプト を見つけることができます。/etc/init.d/dropboxにコピーして、ユーザー名でカスタマイズします。

chkconfig --add dropboxを使用してdebianで有効にします。次に、他のサービスと同じように実行します。

3
csanchez

screenを使用できます:

screen -dmS ~/.dropbox-dist/dropboxd

これにより、デーモンとしてデタッチモードで起動します。

次に、独自のinit.dスクリプトを作成してこの方法でサービスとして実行し、#!/bin/bashの後にchkconfigの行を追加して、2、3などの必要な実行レベルを追加する必要があります。 4、5。ディストリビューションごとに実行レベルが異なるため、これを確認する必要があります。

2
Brian

これをinit.dの説明 ここ に追加するかなり良い方法があります。 Dropboxを起動するユーザーをinitスクリプトに追加する必要があります(簡単な方法)。システムが起動すると、ユーザーごとにDropboxデーモンが起動します。

注意すべき唯一のことは、彼らがDAEMON=.dropbox-dist/dropboxを指定しているということです。作成者は最後にdを忘れました— DAEMON=.dropbox-dist/dropboxdである必要があります。

2
Zac

すべてのLinuxディストリビューションに役立つとは限りませんが、CentOS 7では、アプリケーション/システムツール/メニューから、 'スタートアップアプリケーション '。次に[追加]をクリックして、次のコマンドを入力します。

/home/username/.dropbox-dist/dropboxd

または

/home/.dropbox-dist/dropboxd

enter image description here

1
Aryo Z

.profileファイルの最後に次の行を追加しました。私はターミナルでコンピューターを起動することを好みます。しかし、この後にX11を起動すると、システムトレイにドロップボックスアプレットが表示されません。

dropbox running
rv=$?
if [ $rv -eq 0 ]; then
    dropbox start;
fi
0
Lord Loh.

このサイトには、CLIのダウンロードとインストール、Dropboxの外部へのソフトリンクの作成、Dropboxのデーモンとしての実行など、LinuxにDropboxをインストールして構成する方法に関する完全な情報があるようです。後者は、dropboxdserviceおよびchkconfigで制御できるようにするinit.dスクリプトを提供します。

http://www.dropboxwiki.com/tips-and-tricks/install-dropbox-centos-gui-required

0
MidnightJava

dropboxが提供するスクリプトをダウンロード https://www.dropbox.com/download?dl=packages/dropbox.py を実行します

python dropbox.py start

pythonがない場合、これを実行するにはpyhonが必要になります

0
oo mo