最近、ubuntu16.04を実行するホームサーバーをセットアップしました。デスクトップ、ラップトップ、電話の間で同期するためにsyncthingをインストールしました。
だから私は syncthing をシステムサービスとして実行したいのです。つまり、PCの起動時にサービスが開始され、ログインしなくてもサービスが開始されますが、個人ユーザーのホームディレクトリ(/ホーム/ライアン/同期)。
指示に従いました ここ ですが、システムの起動時にサービスを開始できないという問題があります。ログインしてステータスを確認すると、次のように表示されます...
次に、systemctl start [email protected]
を実行するだけで、正常に動作します。しかし、ログインしてコマンドを実行しなくても起動したいだけです。
この問題は、暗号化されたホームディレクトリと関係がありました。復号化されたホームディレクトリにログインするまで、OSはローカルユーザーの下で同期プロセスを開始できなかったと思います。
結局、 これら の指示に従って、ホームディレクトリの暗号化を削除することにしました。
今ではすべてがうまく機能しています!
ホームフォルダを暗号化したままにし、システムサービスを使用してファイルシステムの暗号化されていない部分のデータを同期する場合は、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フォルダー自体を同期しないようにしてください。
これをUbuntuのスタートアッププログラムとして有効にして、systemctlを使用する代わりにログイン時に起動するようにすることができます。
HUDでスタートアップアプリケーションを検索する[追加]を選択します
Syncthingという名前を付けます
16.04では、コマンドは/ usr/bin/syncthing -no-browser -home = "/ home/youruserfolder/.config/syncthing"でuserfolderを置き換えます。
コメントを追加します。
[追加]をクリックして保存します。
ログアウトしてからログインし、 http://127.0.0.1:8384/ にアクセスしてステータスを確認します。