ネットワークがsystemdに接続したら、.shファイルを介してrcloneサービスを開始します。

ネットワークがsystemdに接続したら、.shファイルを介してrcloneサービスを開始します。

システムの起動/再起動時にネットワーク接続を受信するとすぐに、rcloneサービスがドライブをマウントできるようにします。

これまで端末を介してすべてを正しくインストールしました。デフォルトでは、実行するための単純な.shファイルを作成しました。

#!/bin/sh
! mountpoint -q /home/{user}/{location}/{location} || umount /home/{user}/{location}/{location}    

rclone mount {nameofservice}: /home/{user}/{location}/{location} --config /home/{user}/.config/rclone/rclone.conf

端末で実行すると、期待どおりに動作します。

systemdを使用してネットワーク接続を実装した後、オンラインチュートリアルに従って動作し、755 +x権限で次のファイルを作成しました。/etc/systemd/system/{nameof.service}

[Unit]
Description=Starts {nameof.service} rclone service on startup
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User={user}
Group={group}
ExecStart=/home/{user}/{nameofsh}.sh
TimeoutStartSec=5
RemainAfterExit=yes
[Install]
WantedBy=network-online.target

特定のユーザーとして実行するために必要です。このファイルを作成した後、私も次のことをしました。

systemctl daemon-reload
systemctl enable {nameof.service}

このチュートリアルでは、アクティベーションコマンドはシンボリックリンクの作成に関するメッセージを返すことを期待していましたが、理解していませんでした。新しい行にサイズを変更するだけですが、それは重要だとは思わない。

とにかく実行すると予想される結果が出ますが、systemctl restart {nameof.service}起動や再起動では結果が出ません。

この時点では、私が間違っているのかわからないので、助けてくれてありがとう。

ベストアンサー1

設定WantedBy=default.targetして残りを変更せずにそのままにすると、サービスは次のように動作します。基本ターゲット、これはデフォルトのシステム起動ターゲットを表します。これにより、ネットワークが利用可能になったときに起動プロセス中にスクリプトが実行されます。

または、単純にシンボリックリンクがない場合は、次のように手動で追加できます。ln -s /etc/systemd/system/{nameof.service} /etc/systemd/system/multi-user.target.wants/{nameof.service}

おすすめ記事