echo $MY_PID_ >$PID_FILE_
PID_FILE_CREATED_="true"
break
+ else
+ PID_FILE_CREATED_="error"
fi
sleep 0.25
done
fi
if [ $PID_FILE_CREATED_ = "true" ]; then
- if [ -f $PID_FILE_ ]; then
- # FORK BEGIN
- (
+ # FORK BEGIN
+ (
for i in `seq 40`; do # 40*0.25 = 10 seconds
if [ ! -d "/var/run/screen/S-$USER" ]; then
sleep 0.25 # educated guess
rm $PID_FILE_
lockfile-remove $PID_FILE_
fi
- )&
- # FORK END
- else
- SLEEP_TIME_="$(( $$ % 5 * 5 + 5 ))"
- echo "grml-screen: Error could not create lockfile! (sleeping for $SLEEP_TIME_)"
- sleep $SLEEP_TIME_
- fi
+ )&
+ # FORK END
+elif [ $PID_FILE_CREATED_ = "error" ]; then
+ SLEEP_TIME_="$(( $$ % 5 * 5 + 5 ))"
+ echo "grml-screen: Error could not create lockfile! (sleeping for $SLEEP_TIME_)" >&2
+ sleep $SLEEP_TIME_
+elif [ $PID_FILE_CREATED_ = "false" ]; then
+ echo "nothing to do" &>/dev/null
+else
+ echo "grml-screen: internal error - PID_FILE_CREATED_ == \"$PID_FILE_CREATED_\"" >&2
fi
# now run screen with config