server.jar设置为开机自启动,启动时会执行getLinuxMac()方法获取本机Mac地址:
private static String getLinuxMac() {
StringBuffer sb = new StringBuffer();
try {
String str = "ifconfig | grep ether | sed -n 1p | awk -F' ' '{print $2}'";
String[] cmd = new String[] { "/bin/sh", "-c", str };
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
Logx.error(e);
}
return sb.toString().replace(":", "-").toUpperCase();
}
遇到的问题:
虽然server.jar能正常启动但getLinuxMac()获取到的Mac为空,必须重启这个server.jar才能获取到Mac,是不是Linux启动时还有什么东西没加载完使得上面的代码无法获取到Mac呢?