0

システムの初回起動時に実行されるスクリプトがあります。ただし、同じスクリプトを 2 回目に使用する場合は、1 つのコマンドのみをスキップします。

だから私は変数を試していましたが、それを追跡する方法がないようです。

例: /var/tmp/runme.sh<< これと同じスクリプトを使用する

#!/bin/bash
mkfifo pipe;
mkfifo pipe1;
ps aux | grep Java.jar | awk '{print $2}' | xargs kill -9;
sleep 1;

#
# Question on this:
# only one time it execute / its my application boot process
# - this is only one time on system startup
#
##############################################################
export DISPLAY=:0.0 && java -cp Java.jar main.Boot &

#
# second time this following should always execute
# This is my software kernel, which crash often 
# on the fly i restart it
#
while true; do cat /var/jpeg1.jpeg >> pipe; done
while true; do cat /var/jpeg2.jpeg >> pipe1; done
export DISPLAY=:0.0 && java -cp Java.jar main.Desktop &
4

2 に答える 2

0

でロック ファイルを作成します/var/run(システムが起動時に自動的に消去/var/runされると仮定します。または/tmp、それがうまく機能する場合に使用します)。ロック ファイルが存在するかどうかを確認し、存在するかどうかに基づいてさまざまなアクションを実行します。

于 2012-05-27T11:02:52.840 に答える
0

ロックファイルを使用するだけです :) 例: スクリプトの先頭に次を追加します。

lockfile= /var/lock/MyLockFile
if [! -f $lockfile ] then
  touch $lockfile
  ....place your run-once commands here...
fi

システムのシャットダウン時またはブートの初期段階でスクリプト内の $tmpfile を削除することを忘れないでください!

于 2012-05-27T11:03:09.153 に答える