NRPE running under Solaris SMF control.
The SMF manifest:
<?xml version='1.0'?> <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> <service_bundle type='manifest' name='export'> <service name='application/monitoring/nrpe' type='service' version='0'> <single_instance/> <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local'/> </dependency> <dependency name='network-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/service'/> </dependency> <dependency name='name-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/milestone/name-services'/> </dependency> <instance name='default' enabled='true'> <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'> <service_fmri value='file://localhost/usr/local/etc/nrpe/nrpe.cfg'/> </dependency> <exec_method name='start' type='method' exec='/local/lib/svc/method/nrpectl start' timeout_seconds='30'> <method_context working_directory='/var/tmp'> <method_credential user='nrpe' group='nrpe' privileges='basic,sys_resource,!proc_info,!file_link_any' limit_privileges='basic,sys_resource,!proc_info,!file_link_any'/> </method_context> </exec_method> <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/> <exec_method name='refresh' type='method' exec='/local/lib/svc/method/nrpectl refresh' timeout_seconds='60'/> <property_group name='nrpectl' type='application'> <propval name='NRPE_CFG' type='astring' value='/usr/local/etc/nrpe/nrpe.cfg'/> <propval name='NRPE_FQB' type='astring' value='/usr/local/sbin/nrpe'/> </property_group> </instance> <template> <common_name> <loctext xml:lang='C'>NRPE</loctext> </common_name> <documentation> <doc_link name='nagios.org' uri='http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf'/> </documentation> </template> </service> </service_bundle>
The associated method:
#!/bin/sh . /lib/svc/share/smf_include.sh NRPE_FQB=`svcprop -p nrpectl/NRPE_FQB $SMF_FMRI` NRPE_BIN=`basename $NRPE_FQB` NRPE_CFG=`svcprop -p nrpectl/NRPE_CFG $SMF_FMRI` pid=`pgrep -x -d " " $NRPE_BIN` case $1 in 'start') if [ -z "$pid" ]; then smf_clear_env $NRPE_FQB -c $NRPE_CFG -d >&2 if pgrep -x -d " " $NRPE_BIN >/dev/null 2>&1; then : else echo "NRPE failed to start" >&2 exit $SMF_EXIT_ERR_FATAL fi else echo "NRPE already running (pid=$pid)" >&2 exit $SMF_EXIT_ERR_OTHER fi ;; 'refresh') if [ -z "$pid" ]; then echo "NRPE not running; nothing to refresh" >&2 exit $SMF_EXIT_ERR_OTHER else pkill -x $NRPE_BIN fi ;; esac exit $SMF_EXIT_OK
Season to taste.
Diego put it this way:
epic, must read
We (the Ning “we”) are seriously excited to finally unveil the first public iteration of the result of long hours of work over the past few months: a new mobile social communication service called Mogwee.
Mogwee is messaging, playfulness and usefulness, all bundled together, all in your mobile device, in real-time, 1-on-1 or in groups. You can share photos or videos, and soon we will add the ability to view nearby restaurants and movies so you can quickly figure out where to go next with your friends.
Mogwee is currently available for iPhone and iPad. Android is coming soon, as are mobile web and RIM versions (although I personally don’t have confirmation about the latter). Go get the app and join in, let us know if you run into any issues, and keep in touch (both at Facebook and Twitter).
- Ning Launches Slick New Mobile Social Tool Called Mogwee, TechCrunch
- Ning’s Andreessen and Rosenthal Talk About New Social Chat Service Mogwee, WSJ, All Things Digital, BoomTown
- App Watch: Ning Tries to Turn Smartphones Into Social Networks, WSJ Digits Blog
- Ning Launches A Whole New Business: A Mobile Chat App Called “Mogwee”, San Francisco Chronicle
- Ning returns with free mobile app, USA Today
- Ning launches Mogwee, a mobile social app of its very own, VentureBeat
Additionally, check out Jason’s post on the Ning blog, Meet Mogwee.
With the deployment of the MacMini3,1 as an important box, I wanted to have timely backups and easy recovery, and that is one thing Snow Leopard does rather well with TimeMachine. Attach a disk, configure as a TimeMachine destination, and done, right? Not exactly: I noticed that TimeMachine was only backing up the system if there was a user logged in, something that’s rather rare on this box (in fact, there is generally no display or keyboard attached to it).
It turns out that this is normal behavior, as the system unmounts all external volumes when a user logs out, including TimeMachine volumes (this does not apply to network volumes, just volumes physically attached to the system). There are some edge cases that affect somewhat this behavior (such us when FileVault is in use), but it can be completely disabled:
defaults write /Library/Preferences/SystemConfiguration/autodiskmount \ AutomountDisksWithoutUserLogin -bool true
I went ahead and rebooted the system. TimeMachine now works even when users are not logged in.
A few months ago the aging Early 2009 Mac Mini in the living room was replaced with a 2010 model. The old one was having a hard time keeping up with HD content (mainly in terms of performance but also flat out refusing to display iTunes HD content after the upgrade to Snow Leopard) and the 1080p display over the DVI to HDMI adapter over-scanning issues were rather tiresome. The 2010 model did away with all that: faster CPU, more memory and native HDMI took care of those issues, which left a perfectly functional Macmini3,1 searching for a mission in life, a mission I had found even before I pulled the trigger on the new model.
Thus, the mission is defined: the Mac Mini needs to take over the services that run continuously so the other system can be powered off at will.
The migration is nearly complete: mail is flowing and the software repository is up to date. The wiki bits are still a work in progress, but those are not as critical, primarily because Evernote has largely replaced (and enhanced) the wiki use. None of this would have been possible without the MacPorts Project community, at least not as fast and seamlessly as it has been. So there is happiness in the living room and there is happiness in the office.
In recent moths, we (“we” as in Ning) have started to open up some of our code to the community at large. There is quite a bit of useful stuff in there (23 public repositories and counting), compliments of powerhouses like brianm, davidsklar or tomdz (to name a few). We have also started sharing code from the Operations side of the house, in hopes that it is useful to other Operations shops out in the ether.
Our first entry in this regard, at pierre‘s suggestion, is a Nagios plugin for Tableau servers, check_tableau_systeminfo, which is currently a little rough around the edges but quite usable. There is a new version right around the corner with some polish applied to said edges, and we are preparing a host of other tools for release that we currently use every day in our production environment.
Our production environment is currently comprised of 2000+ nodes, which makes it a relatively large environment that provides a fair amount of interesting operational problems to solve. And problems solvers is something we are actively looking for, i.e., we are hiring! Ning is the largest platform in the world for creating custom social networks, currently hosting 70,000 paid subscribers (up from 15,000 before we transitioned from the prior “freemium” model), and serving over 80 million unique visitors monthly. This makes us one of the top 100 sites in the US, and, according to CNBC.com, one cool company to work for (indeed!).