web-dev-qa-db-ja.com

nohup:コマンド「。」の実行に失敗しました:権限が拒否されました

私はスクリプトを実行してみました:

Nohup . test.sh

そして

Nohup . ./test.sh

しかし、私は得ました:Nohup: failed to run command `.': Permission denied 毎回。

私が実際にやろうとしているのは、スクリプト内で、エイリアスを設定したコマンドを呼び出せるようにすることですが、 ". test.sh "または" . ./test.sh "ではなく" ./test.sh "または" sh ./test.sh ""コマンドが見つかりません "と表示されますが、" Nohup "で実行できるようにしたいと考えています。

7
user994165

Nohupは実行可能ファイルを実行します。外部コマンド、つまり実行可能ファイルを渡す必要があります。エイリアス、関数、組み込みなどのShell構成要素でNohupを呼び出すことはできません。 Nohupは新しいプロセスを実行し、既存のシェルプロセス内では何も実行しません(Nohup自体は別のプロセスであるため)Nohup . …は意味がありません。

Nohup ./test.shは、Nohupでシェルスクリプトを実行する正しい方法です。スクリプトがシバン行(#!/bin/sh)およびファイルが実行可能であること(chmod +x ./test.sh)。