より多くの権限が必要なので、特定のアプリケーションを常にrootとして実行します。私は通常sudoだけを使います。次のようなエイリアスを作成したいと思います。
alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'
問題は、sudoにパスワードの入力を求められますが、実際に何も起こらない場合に発生します。どうすればいいですか?
答え1
エイリアスの代わりにシェルスクリプトを使用してください。
~/.bashrcから:
export PATH="$PATH":~/bin
スクリプトは ~/bin/run にあります。
#!/bin/bash
sudo nohup /path/to/binary > /dev/null 2>&1 &
次に実行するには、次のようにします。
$ runthat
または、PATHステップをスキップした場合は、次のように実行します。
$ ~/bin/runthat
これがあなたのスクリプトではなくシステム全体(すべてのユーザー)スクリプトである場合は、/usr/local/binに入れてください。
あるいは、関数を使用することもできます。例えば。 ~/.bashrcから:
runthat() {
sudo nohup /path/to/binary > /dev/null 2>&1 &
}
また、質問への直接的な答えではなく参照用に、別のオプションはこれをsudoersファイルに入れることです。
sudo visudo
(your editor pops up here)
username ALL=NOPASSWD: /path/to/binary
今パスワードはまったく尋ねません。 (これは安全性が低いことを意味します。おそらく、いくつかのセキュリティホールがあるため、マルウェアはこのアプリを実行する可能性があります...したがって、この小さなリスクを負う必要があります。
答え2
~/.bashrcの一番下に追加してください。
alias sudo="sudo " # space after sudo