0

我有一个在系统首次启动时运行的脚本。但是第二次使用相同的脚本也只跳过一个命令。

所以我尝试使用变量,但似乎没有办法跟踪它。

例如:/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 回答