Googleドライブをマウントするためのカスタムスクリプトがあります。
このスクリプトの一部は、次のコードです。
if [ ! "$(which google-drive-ocamlfuse)" ]
then
echo "Install google-drive-ocamlfuse first!"
exit 1
fi
ターミナルから実行され、チャームのように機能します。
それで、私はそれをサービスとして構成しました:
[Unit]
Description=Mount and umount google drives
[Service]
User=<usernamehere>
Type=oneshot
RemainAfterExit=true
ExecStart=/home/<usernamehere>/mybscripts/gdrivemounter.sh -m
ExecStop=/home/<usernamehere>/mybscripts/gdrivemounter.sh -u
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/<usernamehere>/.Xauthority"
[Install]
WantedBy=graphical.target
残念ながら、終了コードが表示されます:「最初にgoogle-drive-ocamlfuseをインストールしてください!」サービス状況を確認するとき。
ユーザーとルートの下のgoogle-drive-ocamlfuseが有効なパスを与えるコマンド:
$ which google-drive-ocamlfuse
/home/<usernamehere>/.opam/default/bin/google-drive-ocamlfuse
問題はどこにありますか?
問題は、スクリプトがサービスとして実行されるときに、「あなた」として実行されないことです。つまり、スクリプトには環境がありません。具体的には、PATH
変数はありません。
/home/<usernamehere>/.opam/default/bin
スクリプトのPATHに追加するか、単にそのプログラムのフルパスをハードコーディングします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加