Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

A daemon process of mine gets killed almost immediately, as soon as it starts receiving requests. The application log has absolutely no error output, even when I try to run it in foreground.

I have a suspicion that the OS might be killing it for OOM, because this VM instance has only 512 MB allocated.

I would like to find out what is causing this, but am stymied by the fact that there are very few log files available:

# ls -la /var/log
total 20011
drwxr-xr-x   3 root     sys           10 Oct  9 02:38 .
drwxr-xr-x  31 root     root          31 May 15  2013 ..
-rw-r-----   1 root     root     4914932 Nov 15 16:34 auth.log
-rw-r--r--   1 root     root           0 Sep  9 15:49 courier.log
drwxr-xr-x   3 root     root           5 Nov  8 22:18 httpd
-rw-r--r--   1 root     root     2515768 Sep 10 03:10 postfix.log
-rw-r-----   1 root     other          0 Feb 21  2008 sysidconfig.log
-rw-r-----   1 root     sys      2514934 Sep 10 03:10 syslog
-rw-------   1 root     root         132 Nov  8 18:45 vsftpd.log
-rw-r--r--   1 root     root           0 Jun  5  2012 zoneinit.log

As you can see, syslog is two months old, no new entries have been added lately. And that's all the log files I can find.

I am running on SmartOS:

SunOS hostname 5.11 joyent_20120504T040233Z i86pc i386 i86pc

I have root, of this instance (which in SmartOS parlance is called a "zone", afaik), but do not have control over the whole system.

I've read How do I know if the Linux server killed my process and which process it killed?, but it does not help in my case.

share|improve this question

1 Answer 1

Solaris/SmartOS does not implement the OOM Killer. So it is not that. If an application tries to request memory that is not available, an error will be returned to the application and it will be allowed to continue running. Of course how the application manages the error is a different question.

You could use truss/dtrace to check the syscalls the application is making and look for any errors returned.

You could also keep an eye on the process using prstat, ps etc to see how much memory it is requesting/using.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.