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

How would I go about replacing a TTY with a custom script in CentOS 6. CentOS 6 uses upstart instead of the standard SysV init scripts, so I'm having difficulty figuring out how it all works.

Typically (in SysV init scripts), I would edit /etc/inittab and replace one of the mingetty lines with my script, like this:

1:2345:respawn:/root/myscript tty1

However, with Upstart, this file doesn't the relevant lines, so I'm unsure of how to accomplish this.

share|improve this question
    
Have you looked at the documentation? The RedHat documentation has a section on service initialization, and there is of course a website for Upstart as well. –  larsks Oct 20 '11 at 14:27
    
I did, the documentation wasn't very helpful about replacing an existing tty with something else. –  devicenull Oct 20 '11 at 14:46
    
It looks like you've figured it out anyway. Congrats! –  larsks Oct 20 '11 at 16:10

1 Answer 1

up vote 4 down vote accepted

I've figured it out.

First I modified /etc/init/start-ttys.conf to have this for the script section:

script
    . /etc/sysconfig/init
    for tty in $(echo $ACTIVE_CONSOLES) ; do
          [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
            if [ "$tty" == "/dev/tty1" ]; then
                    initctl start myjob TTY=$tty
                    continue
            fi
            initctl start tty TTY=$tty
    done
end script

I then created /etc/init/myjob.conf:

stop on runlevel [012456]

respawn
exec /usr/bin/openvt -c 1 -f -e /root/myscript

This ultimately starts /root/myscript on tty1, instead of mingetty. I'm unsure if this the is simplest way of doing it, but it works quite nicely.

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.