Подумал найти какую-то замену ATD или даже написать самостоятельно аналог ATD на Perl.
Собственно, пока единственным выходом вижу использовать fcron (управление им через сокет позволяет создать задачу, которая будет включать в себя команду на удаление задачи и выполнение нужного кода), но это какой-то изврат ИМХО. Хотя, возможно,я просто не очень хорошо изучил возможности fcron'а.
Проблемы у ATD очень серьёзные и тем не менее это единственный «будильник» в Linux (источник событий таймера). Позор какой-то: делаем ракеты и покоряем Енисей, а элементарную и очень нужную вещь сделать не можем...
Кстати, кто-нибудь знает, как (на уровне системных вызовов или функций GLibC) в асинхронном режиме поставить «таймер», который разбудит процесс через N миллисекунд?