web-dev-qa-db-ja.com

同期がubuntusystemdサービスとして開始に失敗する

最近、ubuntu16.04を実行するホームサーバーをセットアップしました。デスクトップ、ラップトップ、電話の間で同期するためにsyncthingをインストールしました。

だから私は syncthing をシステムサービスとして実行したいのです。つまり、PCの起動時にサービスが開始され、ログインしなくてもサービスが開始されますが、個人ユーザーのホームディレクトリ(/ホーム/ライアン/同期)。

指示に従いました ここ ですが、システムの起動時にサービスを開始できないという問題があります。ログインしてステータスを確認すると、次のように表示されます...

enter image description here

次に、systemctl start [email protected]を実行するだけで、正常に動作します。しかし、ログインしてコマンドを実行しなくても起動したいだけです。

2
Ryan Stull

この問題は、暗号化されたホームディレクトリと関係がありました。復号化されたホームディレクトリにログインするまで、OSはローカルユーザーの下で同期プロセスを開始できなかったと思います。

結局、 これら の指示に従って、ホームディレクトリの暗号化を削除することにしました。

今ではすべてがうまく機能しています!

0
Ryan Stull

ホームフォルダを暗号化したままにし、システムサービスを使用してファイルシステムの暗号化されていない部分のデータを同期する場合は、Syncthing構成フォルダの場所(デフォルトではhome/{myuser}/.config/syncthing)を暗号化されたものから移動する必要がありますSyncthingの実行時に-home="/path/to/config引数を使用するホームディレクトリ。

例えば;

  • サービス$ Sudo systemctl enable syncthing@{myuser}.serviceを有効にし、[email protected]の場所をメモします(/lib/systemd/system/[email protected])。
  • サービスSudo nano /lib/systemd/system/[email protected]を変更し、-home="/path/to/.config/syncthing"ExecStart=行に追加します。

    [Unit]
    Description=Syncthing - Open Source Continuous File Synchronization for %I
    Documentation=man:syncthing(1)
    After=network.target
    [email protected]
    
    [Service]
    User=%i
    ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0 -home="/path/to/.config/syncthing"
    Restart=on-failure
    SuccessExitStatus=3 4
    RestartForceExitStatus=3 4
    
    [Install]
    WantedBy=multi-user.target
    
  • サービス$ Sudo systemctl start syncthing@{myuser}.serviceを開始し、構成ファイルが指定されたパスに追加されていることを確認します。
  • ログインしたら、サービスを再起動して、サービスがすでに稼働していることを確認します。$ systemctl status syncthing@{myuser}.service

n.b。 configフォルダー自体を同期しないようにしてください。

1
gamdow

これをUbuntuのスタートアッププログラムとして有効にして、systemctlを使用する代わりにログイン時に起動するようにすることができます。

HUDでスタートアップアプリケーションを検索する[追加]を選択します

Syncthingという名前を付けます

16.04では、コマンドは/ usr/bin/syncthing -no-browser -home = "/ home/youruserfolder/.config/syncthing"でuserfolderを置き換えます。

コメントを追加します。

[追加]をクリックして保存します。

ログアウトしてからログインし、 http://127.0.0.1:8384/ にアクセスしてステータスを確認します。

0
masonbee