File upstart.cron of Package upstart
#!/bin/sh
# For each upstart user session, emit "rotate-logs" event,
# requesting # the user sessions to rotate their logs. There is no
# user-daily cron.
#
# Doing it this way does not rely on system upstart, nor
# upstart-event-bridge(8) running in the Session Init.
[ -x /sbin/initctl ] || exit 0
for file in /run/user/*/upstart/sessions/*.session
do
[ -f "$file" ] || continue
[ -h "$file" ] && continue
file_uid=$(stat -c %u "$file")
[ -n "$file_uid" ] || continue
session=$(grep \
"^UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/[0-9][0-9]*/[0-9][0-9]*$" \
"$file" 2>/dev/null || true)
[ -n "$session" ] || continue
session_uid=$(echo "$session" | cut -d'/' -f5)
[ -n "$session_uid" ] || continue
# Don't allow a user to spoof logrotation for another user.
[ "$file_uid" = "$session_uid" ] || continue
env -i "$session" /sbin/initctl emit rotate-logs >/dev/null 2>&1 || true
done