From: Marc Weber on
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",

From: Wietse Venema on
Marc Weber:
> # start the daemon:
> exec libexec/master

You must start and stop Postfix with the postfix command.

Invoking the master directly is not supported.

Wietse

 | 
Pages: 1
Prev: Ratelimit on sender id
Next: Sender Authentication