スクリプトをバックグラウンドで起動すると、2つのプロセスが実行されます

user3091317

私は私を困惑させている奇妙なシナリオに出くわしました。

&の
を使用してバックグラウンドで起動するスクリプトがあります

root@# some_script.sh &

それを実行した後、私はps -ef |を実行します。grep some_scriptを実行すると、2番目のプロセスが異なるPIDを取得し続ける2つのプロセスが実行されていますが、その親は私が開始したプロセスです(親プロセスが子を生成して消滅するようですが、これはコードに記述されていません)。例:

root@# ps -ef | grep some_script.sh
root      4696 17882  0 13:30 pts/2    00:00:00 /bin/bash ./some_script.sh
root      4778  4696  0 13:30 pts/2    00:00:00 /bin/bash ./some_script.sh
root@# ps -ef | grep some_script.sh
root      4696 17882  0 13:30 pts/2    00:00:00 /bin/bash ./some_script.sh
root      4989  4696  0 13:30 pts/2    00:00:00 /bin/bash ./some_script.sh

ここで何が得られますか?スクリプトの出力と機能も台無しになっているようで、基本的には終わりのないプロセスになっています(スクリプトで開始と停止を定義している場合)。

スクリプト: `#!/ bin / bash

# Set Global Variables
LOGDIR="/srv/script_logs"
OUTDIR="/srv/audits"
BUCKET_LS=$OUTDIR"/LSOUT_"$i"_"$(date +%d%b%Y)".TXT"
MYCMD1="aws s3api list-objects --bucket viddler-flvs"
MYCMD2="--starting-token"
MAX_ITEMS="--max-items 10000"
MYSTARTING_TOKEN='""'
rm tokenlog.txt flv_out.txt

while [[ $MYSTARTING_TOKEN != "null" ]]
do
# First - Get the token for the next batch
CMD_PRE="$MYCMD1 $MAX_ITEMS $MYCMD2 $MYSTARTING_TOKEN"
MYSTARTING_TOKEN=($($CMD_PRE | jq -r .NextToken))
echo $MYSTARTING_TOKEN >> tokenlog.txt
# Now - get the values of the files for the existing batch
# First - re-run the batch and get the file values we want
MYOUT2=$($CMD_PRE | (jq ".Contents[] | {Key, Size, LastModified,StorageClass }"))
echo $MYOUT2 | sed 's/[{},"]//g;s/   /\n/g;s/StorageClass://g;s/LastModified://g;s/Size://g;s/Key://g;s/^ *//g;s/ *$//g' >> flv_out.txt
#echo $STARTING_TOKEN
done

`

Shooorf

私はあなたが持っていると思います

(
some shell instructions
)

.shの内部
この構文は、新しいプロセスでコマンドを実行します(ただし、コマンドラインは同じです)。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

同じbashスクリプトから起動されたバックグラウンドプロセスの実行ステータスを確認する

分類Dev

コマンドを/ etc / profileに追加して、Raspberry Piの起動時にPythonスクリプトを実行しようとすると、Pythonスクリプトがバックグラウンドで2回実行されるのはなぜですか?

分類Dev

Tclスクリプトがバックグラウンドプロセスで実行されているかどうかを検出します

分類Dev

プロセスがバックグラウンドで実行されているときに表示されるKivyをポップアップします

分類Dev

Pythonスクリプトがバックグラウンドプロセスとして実行されているかどうかを検出する方法

分類Dev

コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

分類Dev

スクリプトが終了した後、バックグラウンドプロセスを実行します

分類Dev

バックグラウンドで起動されたプロセスを表示するシェルスクリプト

分類Dev

2番目のスクリプトのすべてのバックグラウンド並列プロセスが終了するまで2番目のスクリプトがトリガーされるのを待ちますか?

分類Dev

PythonスクリプトをWindowsバックグラウンドプロセスとして実行する

分類Dev

バックグラウンドで起動時にPythonスクリプトを実行します

分類Dev

Pythonを使用してバックグラウンドで実行されるプロセスを作成します

分類Dev

バックグラウンドプロセスでsshスクリプトを実行する

分類Dev

バックグラウンドプロセスとして実行されているPythonスクリプトをファイルに出力する

分類Dev

pytoexeconverterでPythonスクリプトをexeに変換した後も、プロセスはバックグラウンドで実行されています

分類Dev

永久に実行されるスクリプトがありますが、MacOSのバックグラウンドで起動時にどのように実行できますか?

分類Dev

Unix / Javaプロセスは、バックグラウンドに移動すると実行を停止します

分類Dev

複数のプロセスを並行して異なるターミナルセッションで起動する、またはすべてを1つのフォアグラウンドで起動するBashスクリプト?

分類Dev

デバイスがロックされている場合、またはアプリがバックグラウンドで実行されている場合、App Storeのアプリはキーチェーンにアクセスできますか?

分類Dev

macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

分類Dev

1つのグループでバックグラウンドプロセスを起動し、後でそれらをすべて強制終了します

分類Dev

パイプされたbashスクリプトをバックグラウンドで実行する

分類Dev

フラスコアプリを起動すると、2つのプロセスが実行されていることが示されます

分類Dev

単純なPythonWebサーバーをバックグラウンドで起動し、スクリプトの実行を続行します

分類Dev

バックグラウンドプロセスを起動し、いつ終了するかを確認します

分類Dev

bashでバックグラウンドで実行すると、内側のforループが新しいbashプロセスを生成します

分類Dev

プロセスはバックグラウンドで実行されているとどのように定義されていますか?

分類Dev

バックグラウンドでアプリケーションプロセスを起動する

分類Dev

起動時およびRaspberryPiのバックグラウンドで無限のwhileループを使用してbashスクリプトを実行する

Related 関連記事

  1. 1

    同じbashスクリプトから起動されたバックグラウンドプロセスの実行ステータスを確認する

  2. 2

    コマンドを/ etc / profileに追加して、Raspberry Piの起動時にPythonスクリプトを実行しようとすると、Pythonスクリプトがバックグラウンドで2回実行されるのはなぜですか?

  3. 3

    Tclスクリプトがバックグラウンドプロセスで実行されているかどうかを検出します

  4. 4

    プロセスがバックグラウンドで実行されているときに表示されるKivyをポップアップします

  5. 5

    Pythonスクリプトがバックグラウンドプロセスとして実行されているかどうかを検出する方法

  6. 6

    コマンドプロンプトからさまざまなパラメータを取得するバックグラウンドプロセスとしてPythonスクリプトを実行するにはどうすればよいですか?

  7. 7

    スクリプトが終了した後、バックグラウンドプロセスを実行します

  8. 8

    バックグラウンドで起動されたプロセスを表示するシェルスクリプト

  9. 9

    2番目のスクリプトのすべてのバックグラウンド並列プロセスが終了するまで2番目のスクリプトがトリガーされるのを待ちますか?

  10. 10

    PythonスクリプトをWindowsバックグラウンドプロセスとして実行する

  11. 11

    バックグラウンドで起動時にPythonスクリプトを実行します

  12. 12

    Pythonを使用してバックグラウンドで実行されるプロセスを作成します

  13. 13

    バックグラウンドプロセスでsshスクリプトを実行する

  14. 14

    バックグラウンドプロセスとして実行されているPythonスクリプトをファイルに出力する

  15. 15

    pytoexeconverterでPythonスクリプトをexeに変換した後も、プロセスはバックグラウンドで実行されています

  16. 16

    永久に実行されるスクリプトがありますが、MacOSのバックグラウンドで起動時にどのように実行できますか?

  17. 17

    Unix / Javaプロセスは、バックグラウンドに移動すると実行を停止します

  18. 18

    複数のプロセスを並行して異なるターミナルセッションで起動する、またはすべてを1つのフォアグラウンドで起動するBashスクリプト?

  19. 19

    デバイスがロックされている場合、またはアプリがバックグラウンドで実行されている場合、App Storeのアプリはキーチェーンにアクセスできますか?

  20. 20

    macOSでbashスクリプトを見つけるためにpgrepする方法(またはバックグラウンドで実行されているスクリプトをプログラムで強制終了する方法)?

  21. 21

    1つのグループでバックグラウンドプロセスを起動し、後でそれらをすべて強制終了します

  22. 22

    パイプされたbashスクリプトをバックグラウンドで実行する

  23. 23

    フラスコアプリを起動すると、2つのプロセスが実行されていることが示されます

  24. 24

    単純なPythonWebサーバーをバックグラウンドで起動し、スクリプトの実行を続行します

  25. 25

    バックグラウンドプロセスを起動し、いつ終了するかを確認します

  26. 26

    bashでバックグラウンドで実行すると、内側のforループが新しいbashプロセスを生成します

  27. 27

    プロセスはバックグラウンドで実行されているとどのように定義されていますか?

  28. 28

    バックグラウンドでアプリケーションプロセスを起動する

  29. 29

    起動時およびRaspberryPiのバックグラウンドで無限のwhileループを使用してbashスクリプトを実行する

ホットタグ

アーカイブ