linux shell 控制脚本执行次数
下面是俺写的测试脚本,为了能运行多次测试程序性能,想控制运行个数,通过lockfile 和 grep配合进行限制。
#!/bin/bash
. /etc/profile
project=simnin
export CLASSPATH=.:/usr/$project:$CLASSPATH
for jarfile in /usr/$project/lib/*.jar ; do
if ! echo $CLASSPATH | grep $jarfile > /dev/null
then
export CLASSPATH=$CLASSPATH:$jarfile
fi
done
#echo $#
#echo $*
#echo $0 $1 $2 $3
#run once when lock file
lckfile="/tmp/.perfomanceTest.lck"
lockfile -1 -r 60 $lckfile
log=/tmp/perftest.log
echo >> $log
lmt=1
if [ "`date +%H`" -lt 8 -o "`date +%H`" -gt 18 ]; then
lmt=10
fi
prog="com.lj.PerformanceTest"
ps -ef | grep $prog | grep "grep $prog" -v >>$log
cnt=`ps -ef | grep $prog | grep "grep $prog" -v -c `
if [ "$cnt" -gt "$lmt" ]; then
rm -f $lckfile
echo "exit 1 when $cnt > $lmt ." >>$log
exit 1;
fi
echo "$$ start at `date`" >>$log
#echo =====================ENV============== >>$log
#env >>$log
echo =====================CMD============== >>$log
echo $0 $* >> $log
$JAVA_HOME/bin/java com.lj.PerformanceTest $* >>$log 2>&1 &
rm -f $lckfile
echo "$$ $! is running" >>$log
echo "$$ end at `date`" >>$log
相关文档:
准备工作
如果你还没装编译环境或自己不确定装没装,不妨先执行
sudo apt-get install build-essential
如果你需要编译 Fortran 程序,那么还需要安装 gfortran(或 g77)
sudo apt-get install gfortran
如果你已经了解一些 vim
的知识,而且想用它来编辑源代码,那么我们不妨装个完整版
sudo apt-get install vi ......
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2: ......
转载-linux 2.6 进程总结
进程、轻量级进程(LWP)、线程
进程:程序执行体,有生命期,用来分配资源的实体
线程:分配CPU的实体。
用户空间实现,一个线程阻塞,所有都阻塞。
内核实现,不会所用相关线程都阻塞。用LWP实现,用线程组表示这些线程逻辑上所属的进程。
......
linux 2.6线程创建源码分析
上章讲到线程,现在对线程创建的代码流程分析下。来一步一步揭开她神秘的面纱
linux内核创建线程函数 kernel_thread(),最终会调用do_fork().
前面谈到线程也是用task_struct结构表示它拥有的信息,只是是共享进程的资源。
根据clone_fla ......
linux下的主要文件
/boot/grub/grub.conf GRUB configuration file
/boot/module-info-* Module information for the Linux kernel
/boot/System.map-* Map of the Linux kernel
/boot/vmlinuz-* Linux kernel
/etc/aliases Mail aliases
/etc/a ......