LinuxサービスとしてのBashスクリプトは実行されませんが、ターミナルから実行すると完全に機能します

rah606

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]

編集
0

コメントを追加

0

関連記事

分類Dev

ターミナルから実行するとスクリプトは正常に実行されますが、cronでは機能しません。どうして?

分類Dev

matlabからのpythonスクリプトの実行は機能しませんが、ターミナルからは正常に実行されます

分類Dev

プログラムはターミナルからは正常に実行されますが、シェルスクリプトからは機能しません

分類Dev

GPSがインストールされているにもかかわらず、エミュレータのCordovaアプリケーションが「GooglePlayサービスを更新しないとHelloMapは実行されません」とスローします

分類Dev

XからインポートYはターミナルで機能しますが、ターミナルから実行されるスクリプトでは機能しません

分類Dev

ソフトウェアは、ターミナルから手動で実行すると機能しますが、Upstartサービスとしては機能しません

分類Dev

Bashスクリプトはnautilusからは実行されませんが、ターミナルから実行されます

分類Dev

Bashスクリプトはnautilusからは実行されませんが、ターミナルから実行されます

分類Dev

.shスクリプトはターミナルで機能しますが、「ターミナルで実行」を介して実行された場合は機能しません

分類Dev

pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

分類Dev

ターミナルからPythonスクリプトを実行しているときに、モジュールが読み込まれません

分類Dev

起動スクリプトのXrandrコマンドは効果がありませんが、スクリプトは実行され、コマンドはターミナルから機能します

分類Dev

スクリプトはターミナルで機能しますが、ProcessBuilderを使用して実行した場合は機能しません

分類Dev

スクリプトはターミナルでは正常に実行されますが、launchdからは実行されません

分類Dev

bashスクリプトからPythonGUIアプリケーションを実行するときは、ターミナルを開いたままにします

分類Dev

Visual StudioでPowerShellスクリプトを実行しているときに、ActiveDirectoryターミナルサービスの属性を取得できません

分類Dev

ターミナルから直接呼び出された場合は実行可能ファイルが起動しますが、シェルスクリプトから呼び出された場合は機能しません

分類Dev

Bashスクリプトは、ターミナルから直接実行された場合、コマンドに対して同じ出力を出力しません

分類Dev

Bashスクリプトは、ターミナルから直接実行された場合、コマンドに対して同じ出力を出力しません

分類Dev

ボタンのイベントリスナーが正しく機能せず、関数はクリックイベントの外部で正常に実行されますが、ボタンをクリックすると機能しません

分類Dev

コマンドがシェルスクリプトを介して実行されるとAwk構文エラーが発生しますが、Linuxbashシェルから実行されるとコマンドは正常に機能します

分類Dev

PHPからRscriptを実行することはできませんが、ターミナルからは完全に実行されます

分類Dev

FreeBSD 7.3:サービスは機能していますが、ステータスは「実行されていません」と表示されます

分類Dev

ターミナルを閉じると、リモートスクリプトの実行が停止しますか?

分類Dev

実行中のスクリプトから新しいターミナルタブでスクリプトを実行しようとしています

分類Dev

エクスプローラーから管理者として実行するとバッチスクリプトが失敗しますが、ターミナルから管理者として実行すると失敗しますか?

分類Dev

ターミナルから実行した場合とPythonから実行した場合では、スクリプトの動作が異なります

分類Dev

ターミナルを閉じずにターミナルで実行されているスクリプトを強制終了する方法(Ctrl + Cは機能しません)?

分類Dev

PowerShellスクリプトでquser.exeを実行すると、IDEで機能しますが、サービスとして実行している場合は機能しません。

Related 関連記事

  1. 1

    ターミナルから実行するとスクリプトは正常に実行されますが、cronでは機能しません。どうして?

  2. 2

    matlabからのpythonスクリプトの実行は機能しませんが、ターミナルからは正常に実行されます

  3. 3

    プログラムはターミナルからは正常に実行されますが、シェルスクリプトからは機能しません

  4. 4

    GPSがインストールされているにもかかわらず、エミュレータのCordovaアプリケーションが「GooglePlayサービスを更新しないとHelloMapは実行されません」とスローします

  5. 5

    XからインポートYはターミナルで機能しますが、ターミナルから実行されるスクリプトでは機能しません

  6. 6

    ソフトウェアは、ターミナルから手動で実行すると機能しますが、Upstartサービスとしては機能しません

  7. 7

    Bashスクリプトはnautilusからは実行されませんが、ターミナルから実行されます

  8. 8

    Bashスクリプトはnautilusからは実行されませんが、ターミナルから実行されます

  9. 9

    .shスクリプトはターミナルで機能しますが、「ターミナルで実行」を介して実行された場合は機能しません

  10. 10

    pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

  11. 11

    ターミナルからPythonスクリプトを実行しているときに、モジュールが読み込まれません

  12. 12

    起動スクリプトのXrandrコマンドは効果がありませんが、スクリプトは実行され、コマンドはターミナルから機能します

  13. 13

    スクリプトはターミナルで機能しますが、ProcessBuilderを使用して実行した場合は機能しません

  14. 14

    スクリプトはターミナルでは正常に実行されますが、launchdからは実行されません

  15. 15

    bashスクリプトからPythonGUIアプリケーションを実行するときは、ターミナルを開いたままにします

  16. 16

    Visual StudioでPowerShellスクリプトを実行しているときに、ActiveDirectoryターミナルサービスの属性を取得できません

  17. 17

    ターミナルから直接呼び出された場合は実行可能ファイルが起動しますが、シェルスクリプトから呼び出された場合は機能しません

  18. 18

    Bashスクリプトは、ターミナルから直接実行された場合、コマンドに対して同じ出力を出力しません

  19. 19

    Bashスクリプトは、ターミナルから直接実行された場合、コマンドに対して同じ出力を出力しません

  20. 20

    ボタンのイベントリスナーが正しく機能せず、関数はクリックイベントの外部で正常に実行されますが、ボタンをクリックすると機能しません

  21. 21

    コマンドがシェルスクリプトを介して実行されるとAwk構文エラーが発生しますが、Linuxbashシェルから実行されるとコマンドは正常に機能します

  22. 22

    PHPからRscriptを実行することはできませんが、ターミナルからは完全に実行されます

  23. 23

    FreeBSD 7.3:サービスは機能していますが、ステータスは「実行されていません」と表示されます

  24. 24

    ターミナルを閉じると、リモートスクリプトの実行が停止しますか?

  25. 25

    実行中のスクリプトから新しいターミナルタブでスクリプトを実行しようとしています

  26. 26

    エクスプローラーから管理者として実行するとバッチスクリプトが失敗しますが、ターミナルから管理者として実行すると失敗しますか?

  27. 27

    ターミナルから実行した場合とPythonから実行した場合では、スクリプトの動作が異なります

  28. 28

    ターミナルを閉じずにターミナルで実行されているスクリプトを強制終了する方法(Ctrl + Cは機能しません)?

  29. 29

    PowerShellスクリプトでquser.exeを実行すると、IDEで機能しますが、サービスとして実行している場合は機能しません。

ホットタグ

アーカイブ