Если ваши процессы будут живы только во время жизни другого php-скрипта, вы можете использовать popen вместо shell_exec:
http://us.php.net/popen
Это дает вам очень удобный способ переноса данных из других процессов в ваш php-скрипт, используя тот же интерфейс, что и для работы с файлами. Чтобы узнать, что процесс завершен, вы можете убедиться, что процесс отправит EOF (конец файла), когда это будет сделано, и использовать функцию feof php для его обнаружения.
С другой стороны, если ваши процессы могут жить дольше, чем любые другие php-скрипты, которые общаются с ним, тогда текстовый файл может быть очень практичным решением. Имейте в виду, однако, что доступ к диску всегда намного медленнее, чем доступ к памяти, поэтому, если вы используете текстовые файлы для связи, он не будет оптимально быстрым.