博文

目前显示的是 七月, 2008的博文

我想知道Linux下jdk的FileLock到底是怎么回事

环境:
OS: fc8
jdk: 1.6测试代码:package snnn; import java.nio.*; import java.nio.channels.*; import java.io.File; import java.io.RandomAccessFile; publicclasss{ publicstaticvoidmain(String[] args){ try{ File file=new File("a.lock"); FileChannel fc=new RandomAccessFile(file,"rw").getChannel(); FileLock lock=fc.tryLock(); System.out.println("got"); lock.release(); fc.close(); }catch (Exception e) { } } }; 测试方式:
在shell中执行
$flock a.lock yes
那么该命令会把a.lock这个文件用system api中的flock锁住。然后输出满屏幕的yes
如果我接着再次执行这个命令,那么将得不到任何输出。因为无法再次得到锁。可是如果我此时用ant执行上面的java代码,显示的却是我成功获得了锁。我在屏幕上看见了输出run: [java] got 我不管是用fc.tryLock()还是fc.lock(),结果都一样。咋回事嘛?

root并不是必须的

在上家公司工作的时候,总是四处找人要root帐号。换了新公司后,人生地不熟,不知道该找谁要。前一段时间linux有一个vm的提升漏洞。我用了一段时间。最近服务器更新了,OMG~~~ 后来我发现就算是普通的用户帐户,也是可以做很多事情的。而通常这些对我来说已经足够了。我现在已经用普通用户帐户在自己的目录下安装了apache 2.2、tomcat 6.0、mysql 5.0、proftpd等等。刚刚把apache和tomcat间用ajp连接了起来。 只是在装bugzilla的时候遇到了麻烦。它的页面都是perl写的cgi.每个脚本的第一行都是#!/bin/perl。于是我写了个sed脚本做了下替换。替换成我的目录下的perl。