我正在不同的操作系统上测试我们的服务器应用程序(编写的Java),并认为由于良好的Java集成,OpenSolaris(2008.11)将是最不麻烦的.事实证明我错了,因为我最终得到了一个UnknownHostException
try {
computerName = InetAddress.getLocalHost().getHostName();
if (computerName.indexOf(".") > -1)
computerName = computerName.substring(0,
computerName.indexOf(".")).toUpperCase();
} catch (UnknownHostException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
输出是:
java.net.UnknownHostException: desvearth01: desvearth01
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
Run Code Online (Sandbox Code Playgroud)
但是,nslookup desvearth01
返回正确的IP地址,并按预期nslookup localhost
返回127.0.0.1
.此外,相同的代码在FreeBSD上完美运行.我不知道OpenSolaris有什么特别之处吗?
任何提示都表示赞赏,谢谢.
可用于OpenSolaris的源代码对于查找Solaris的内部(以及dtrace和mdb)非常有用.但是,据我所知,无法确切了解OpenSolaris源代码与作为Solaris正式更新版本发布的二进制文件的关系.即哪些版本的源文件被编译为例如Solaris 10 Update 6(10/08)?
您可以通过查看更改日期,历史记录评论和错误票据来得出一些结论.我知道OpenSolaris和Solaris之间没有1:1的关系.但有没有更好的方法我没有想到?
我正在尝试将我的webapp日志记录到local4级别的syslog中.环境:Tomcat6,OpenSolaris,Struts2,log4j.我的log4j.properties的内容如下 -
log4j.rootLogger=INFO, SYSLOG
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost=localhost
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%d [%t] %-5p - %m%n
log4j.appender.SYSLOG.Facility=local4
Run Code Online (Sandbox Code Playgroud)
我编辑了/etc/syslog.conf并在最后添加了以下行 -
local4.notice /var/log/mylog.log
Run Code Online (Sandbox Code Playgroud)
在此之后,我重新启动了syslog服务.当我从shell运行以下命令时,它会正确记录在/var/log/mylog.log中.这主要意味着系统日志服务正常运行 -
logger -i -p local4.notice -t "check log" "test message"
Run Code Online (Sandbox Code Playgroud)
但我完全不明白为什么来自webapp的日志永远不会到达/var/log/mylog.log.我的log4j配置对SysLogAppender是否正确?
当我尝试普通的appender,如"DailyRollingFileAppender"等,日志工作正常..但我只是无法让SyslogAppender工作..
谢谢!-Keshav
我需要找到实现 false 的源代码。
我在github上找到了源代码并找到了false.c,其中 false 以代码 255 退出。
那么,为什么“false; echo $”会出现?在 shell 中返回 1 而不是 255?我想我错过了某个地方的来源。
false.c文件中的代码:
#pragma ident "%Z%%M% %I% %E% SMI"
#include <unistd.h>
/*
* Exit with a non-zero value as quickly as possible.
*/
int
main(void)
{
_exit(255);
/*NOTREACHED*/
return (0);
}
Run Code Online (Sandbox Code Playgroud) OpenSolaris/OpenIndiana中的'wheel'组相当于什么?我曾经在轮组中添加一个用户并允许该组通过sudo执行命令而无需密码询问.我想在OpenSolaris/Indiana中做同样的事情.
我看到'staff'组在OpenSolaris中具有相同的gid,例如Linux中的轮子(Fedora或CentOS).
我不知道在Solaris中创建zfs池时命名使用的vdev(虚拟设备)的原因是什么.假设,我有一个磁盘c4d0,c4d0p0和c4d0s0是什么意思?而且,我怎么知道如何使用ZFS命令.我非常困惑,因为我一直得到"无效的vdev指定".有什么指针吗?