How to Fix “Unknown job” Error in Upstart (Ubuntu 12.10): rs-comm.conf Not Recognized


2 views
# First, verify the job file exists with correct permissions
ls -l /etc/init/rs-comm.conf
# Expected output:
# -rw-r--r-- 1 root root 349 Nov 15 03:22 /etc/init/rs-comm.conf

When Upstart fails to recognize a job file despite it being in the correct directory (/etc/init/), these are the most likely culprits:

  • Syntax errors in the job configuration file
  • Incorrect file permissions or ownership
  • Missing executable path in the job definition
  • Upstart service not properly reloaded

Here's what a properly formatted rs-comm.conf should look like:

description "RS Communication Service"
author "Your Name "

start on runlevel [2345]
stop on runlevel [016]

respawn
respawn limit 10 5

exec /usr/bin/rs-comm
# 1. Validate the configuration file syntax
init-checkconf /etc/init/rs-comm.conf

# 2. Force a complete upstart reload (more thorough than reload-configuration)
sudo telinit u

# 3. Check system logs for errors
grep -i rs-comm /var/log/syslog

# 4. Verify the executable path exists
which rs-comm || ls -l /usr/bin/rs-comm

# 5. Alternative start method (for testing)
sudo start rs-comm

For more complex setups, consider these additional parameters:

# Environment variables
env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Pre-start script
pre-start script
    [ -x /usr/bin/rs-comm ] || { stop; exit 0; }
end script

# Multiple execution conditions
start on (filesystem and net-device-up IFACE=eth0)

For newer Ubuntu versions, here's the equivalent systemd service file:

[Unit]
Description=RS Communication Service
After=network.target

[Service]
ExecStart=/usr/bin/rs-comm
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

The error initctl: Unknown job: rs-comm typically occurs when Upstart fails to recognize a job definition file despite its presence in /etc/init/. Let's break down the diagnostic steps and solutions.

First, verify the job file's integrity:

# Check file permissions (should be 644)
ls -l /etc/init/rs-comm.conf

# Validate file syntax
init-checkconf /etc/init/rs-comm.conf

1. Incorrect file extension: Ensure the file ends with .conf
2. Syntax errors: A missing stanza or malformed configuration can cause silent failures

Example of a valid minimal Upstart config:

description "RS Communication Service"
author "Your Name"

start on runlevel [2345]
stop on runlevel [016]

exec /path/to/your/rs-comm

Enable Upstart's debug mode to see job loading:

sudo initctl log-priority debug
sudo initctl reload-configuration
sudo initctl list | grep rs-comm

Check system logs for loading errors:

grep -i upstart /var/log/syslog | tail -20

If standard methods fail, try forcing manual loading:

sudo initctl start rs-comm JOB=/etc/init/rs-comm.conf

In rare cases, filesystem issues can prevent Upstart from seeing new files. Try:

sudo touch /etc/init/rs-comm.conf
sudo initctl reload-configuration

Ubuntu 12.10's Upstart 1.5 has known issues with certain configurations. As a last resort:

sudo dpkg-reconfigure upstart