Coredump

Work, play, and everything in-between.

Archive for the ‘Work’ Category

Trivial desktop customization

without comments

I’m currently playing with Devil’s Pie, a utility that matches windows and window events to a set of rules similar to Emacs’ (yikes! :P) S-expressions.

I installed Devil’s Pie on my work desktop (running FC6), thus:

$ sudo yum install devilspie

(I have previously organized my desktop with four workspaces: for browsing, remote SSH sessions, remote desktop sessions, and other tasks.) I then created a configuration file:

$ mkdir .devilspie && vi ~/.devilspie/workspaces.ds
   (debug)
   (if (is (application_name) "Firefox") (begin maximize (undecorate (set_workspace 1))))
   (if (is (application_name) "Terminal") (begin maximize (undecorate (set_workspace 2))))
   (if (matches (application_name) "^rdesktop.+") (begin center (maximize (set_workspace 3))))

and invoked Devil’s Pie: devilspie -d ~/.devilspie/workspaces.ds &. The (debug) line in the configuration is, heh, for debugging purposes so Devil’s Pie will print out events and other information, which I can then later use.

Seems pretty straightforward, though there isn’t much functionality that I can use. (Then again, my requirement is minimal: I just want to group apps to different workspaces to avoid clutter.) I can then drop Devil’s Pie in my X startup script, along with the other startup apps.

Written by Ian Dexter

February 27th, 2007 at 10:33 am

Posted in Play, Work

Tagged with , , , , ,

CLI shortcuts, 7

without comments

(This is part of an ongoing series on Linux CLI shortcuts and hacks.)

After editing .bashrc and .bash_profile, you can reload the values by running

$ source ~/.bash_profile

Written by Ian Dexter

February 20th, 2007 at 9:45 am

Posted in Play, Work

Tagged with ,

Long night

without comments

I’m still here at the office, watching text scroll down (or is it up?) the monitor. Actually, I’m backing up the whole /var partition from one of the mail servers, to make way for a larger capacity disk.

You’re thinking, duh, LVM. But this server had been set up way before LVM became stable. I could not even back up to tape — not yet, at least — because I have to get this up and fast, while keeping the server live, so I’m doing it over (of all things) USB, and 1.1 at that.

(Heh, fast. I’ve been at it since 5 PM, and I’m not nearly halfway done. *sigh* Such is life.)

Written by Ian Dexter

February 14th, 2007 at 2:00 am

Posted in Work

Tagged with

Ouch!

without comments

Given:

$ ll Archive/
total 8
-rw-r--r-- 1 d3m users 10 2007-01-26 16:29 file1.z
-rw-r--r-- 1 d3m users 15 2007-01-26 16:29 file2.z

What happens if:

$ cd ~/Destination; cp ~/Archive/*.z

:P

Written by Ian Dexter

January 26th, 2007 at 4:07 pm

Posted in Play, Work

Tagged with ,

Writing a custom init script

with one comment

It’s been a long time since I did a source tar-ball install. But the production servers at work require that applications that are not part of the standard install base (from Kickstart/Jumpstart and VMWare images) should be compiled from source. It was a very refreshing experience. :)

So after going through the usual configure; make; make install invocation, it was time to make sure that the app is persistent at boot. I would have copied an init script from my *nix desktop, but good thing SLES had a baseline script in /etc/init.d/skeleton.

In a nutshell, the steps are:

  1. Define the INIT INFO section, as per the LSB specs.
  2. Fill in the variables.
  3. Use /etc/rc.status and rc_* functions for sanity checks.
  4. Create the basic start, stop and status functions.
  5. Use YAST (System > System Services (Runlevel)) — or, if available, innserv — to enable the startup script.

Below is a script I wrote for Apache:

#!/bin/sh
#
# Author: Ian Dexter R. Marquez
#
# /etc/init.d/httpd
#
### BEGIN INIT INFO
# Provides: httpd
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the Apache httpd daemon
### END INIT INFO
 
HTTPD=/path/to/apache/2.2.4/bin/httpd
APACHECTL=/path/to/apache/2.2.4/bin/apachectl
PROG=httpd
 
test -x $HTTPD || exit 5
test -s /etc/rc.status && . /etc/rc.status && rc_reset
 
start() {
   echo -n "Starting $PROG: "
   $HTTPD -k start
   rc_status -v
}
 
stop() {
   echo -n "Stopping $PROG: "
   /sbin/killproc $HTTPD
   rc_status -v
}
 
status() {
   echo -n "Checking $PROG: pid "
   /sbin/pidofproc $HTTPD
   rc_status -v
}
 
case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      rc_status
      ;;
   status)
      status
      ;;
   try-restart|condrestart)
      if test "$1" = "condrestart"; then
         echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
      fi
      $0 status
      if test $? = 0; then
         $0 restart
      else
         rc_reset   # Not running is not a failure.
      fi
      # Remember status and be quiet
      rc_status
      ;;
   graceful|help|configtest|fullstatus)
      $APACHECTL $@
      rc_status
      ;;
   *)
      echo "Usage: $PROG {start|stop|restart|status|graceful|help|configtest|fullstatus}"
      exit 1
esac
rc_exit

References:

Written by Ian Dexter

January 24th, 2007 at 3:27 pm

Posted in Work

Tagged with , , ,