Делаешь фронт-скрипт который проводит авторизацию и т.д. Этот скрипт запускает для каждого юзера воркера (твой рабочий скрипт, который что-то там делает). Примерно так:
$command = 'nohup php my_super_script.php --dir_param=/my_work_dir/ > /dev/null 2>&1 & echo $!';
exec($command, $output);
$pid = (int)$output[0];
Сохраняешь pid с привязкой к юзеру (файлом или в БД, это уже на твое усмотрение). При заходе юзера по этому pid ищешь процесс, если не нашел запускаешь заново.
Вот небольшой класс для работы с внешними процессами -
https://gist.github.com/profaller/f0301eb5d67a6b79...