Which is the perfect way to write an upstart job for postfix?

context: upstart tries tracing forks of a daemon 1 or two times
depending on the daemonType setting. Then it traces when a daemon dies
so that it can restart it.
"postfix start" forkes two times. But it forkes some additional times to
do some initial check [1]. 
The main process is pid 1350 in this example. When upstart traces the
forks it'll follow the wrong one obviously.

So is it save to write such a job:

  pre-start script
    # this is run always before starting the daemon
    postfix check
  end  script

  # start the daemon:
  exec libexec/master 

Or does postfix do more "magic" on startup I don't know about?
(I don't know postfix very well yet)

Marc Weber

[1] complex fork behaviour traced by strace running postfix start
1290  execve("/-postfix-2.2.11/sbin/postfix", 
1290  execve("/ostfix/conf", "start"], 
1291  execve("/-postfix-2.2.11/libexec/postfix/master", 
1292  execve("/ostfix/conf/postfix-script", "check-fatal"], 
1293  execve("/st-install", "create-missing"], 
1294  execve("/-postfix-2.2.11/sbin/postconf", 
1295  execve("/-coreutils-8.4/bin/uname", 
1297  execve("/-gnugrep-2.5.4/bin/grep", 
1298  execve("/-postfix-2.2.11/sbin/postconf", 
1300  execve("/-postfix-2.2.11/sbin/postconf", 
1301  execve("/-postfix-2.2.11/sbin/postconf", 
1303  execve("/-postfix-2.2.11/sbin/postconf", 
1304  execve("/-postfix-2.2.11/sbin/postconf", 
1306  execve("/-postfix-2.2.11/sbin/postconf", 
1307  execve("/-postfix-2.2.11/sbin/postconf", 
1309  execve("/-postfix-2.2.11/sbin/postconf", 
1310  execve("/-postfix-2.2.11/sbin/postconf", 
1311  execve("/-postfix-2.2.11/sbin/postconf", 
1312  execve("/-postfix-2.2.11/sbin/postconf", 
1313  execve("/-postfix-2.2.11/sbin/postconf", 
1318  execve("/-postfix-2.2.11/sbin/postsuper", 
1319  execve("/ostfix/conf/postfix-script", "check-warn"], 
1320  execve("/-coreutils-8.4/bin/ls", 
1322  execve("/-gnugrep-2.5.4/bin/grep", 
1323  execve("/-coreutils-8.4/bin/ls", 
1325  execve("/-gnugrep-2.5.4/bin/grep", 
1326  execve("/-postfix-2.2.11/sbin/postlog", 
1327  execve("/-coreutils-8.4/bin/ls", 
1329  execve("/-gnugrep-2.5.4/bin/grep", 
1330  execve("/-postfix-2.2.11/sbin/postlog", 
1331  execve("/-findutils-4.4.1/bin/find", 
1332  execve("/-postfix-2.2.11/sbin/postlog", 
1333  execve("/-findutils-4.4.1/bin/find", 
1335  execve("/-coreutils-8.4/bin/ls", 
1336  execve("/-gnugrep-2.5.4/bin/egrep", 
1337  execve("/-findutils-4.4.1/bin/find", 
1338  execve("/-findutils-4.4.1/bin/find", 
1339  execve("/-postfix-2.2.11/sbin/postlog", 
1340  execve("/-postfix-2.2.11/sbin/postlog", 
1341  execve("/-findutils-4.4.1/bin/find", 
1342  execve("/-postfix-2.2.11/sbin/postlog", 
1343  execve("/-postfix-2.2.11/sbin/postlog", 
1345  execve("/-coreutils-8.4/bin/ls", 
1346  execve("/-gnugrep-2.5.4/bin/egrep", 
1347  execve("/-findutils-4.4.1/bin/find", 
1348  execve("/-findutils-4.4.1/bin/find", 
1349  execve("/-postfix-2.2.11/sbin/postlog", 
1350  execve("/-postfix-2.2.11/libexec/postfix/master", 
1352  execve("/-postfix-2.2.11/libexec/postfix/qmgr", 
1351  execve("/-postfix-2.2.11/libexec/postfix/pickup", 

Reply via email to