私は明示的に殺されるまでループで無限に実行する簡単な実行可能なLinuxプログラムを持っていると言います。私は、AndroidデバイスからUSBケーブルを取り外した後でも引き続き実行できるような方法で展開できるようにしたいと考えています。私はこのようなプログラムを実行しようとすると、linuxからAndroidで永続的なバックグラウンドプロセスを起動する
$adb shell
<android_shell>$ /path/to/dir/myprog &
私はコードを抜きすることだと私は戻ってそれを接続して、
$ps | grep myprog
を行うとき、私はまだそれが実行して見ることができます。しかし
、私はそれをこのように実行してみてください、
$adb shell /path/to/dir/myprog &
私は私のコードを抜いた瞬間には、プロセスが殺されて、私はps
ともうそれを見つけることができないのです。
1)コマンドを実行する2つの方法の違いは何ですか?
2)私がやっていることを達成するためにデスクトップ端末からコマンドを実行する方法はありますか?
ここで重要なのは実際に&を引用することです。見積もりがなければ、&はPCのシェルによって処理され、Androidのシェルに渡されるのではなく、ローカルのadbプロセスのバックグラウンドとして処理されます。 –
@リルワン。あなたは説得力のある議論をしました。しかし、これは真実ではありません。 '$ adb shell/path/to/dir/myprog&'を実行すると、実際にはシェルを起動していて、シェルがプロセスを起動するので、親は実際にシェルになります。正しい答えは、ライ・ライアンの言葉です。見積もりがなければ、端末は私の命令の主張ではなく、バックグラウンド・プロセスであると私の命令を考慮していました。これは私の実際の意図です。引用符を追加すると問題が解決しました。ですから、 '$ adb shell/path/to/dir/myprog&"は私の問題を完全に修正しました。この場合、nohupは必要ではありませんでした。 – shaveenk
@LieRyanあなたがあなたのコメントを答えとして書くことができれば、私はそれを受け入れます。 – shaveenk