Следуя нескольким подсказкам из других ответов, я придумал этот грязный скрипт:
firefox -no-remote -p c-portal &
ffpid=`ps aux | grep firefox | sed '2q;d' | tr -s ' ' | cut -d ' ' -f 2`
echo "firefox pid: $ffpid"
sleep 4
kill $ffpid
Мне также нужно было перейти к:config и изменить browser.sessionstore.resume_from_crash
на false.
Объяснение каждой команды: ps aux получает полный список процессов в системе, grep находит все те, которые содержат firefox, sed получает вторую строку (которая, как представляется, всегда является последним экземпляром firefox), tr удаляет лишние пробелы, вырезает получает второй столбец (-d означает разделитель, который является пробелом).
После этого беспорядка обработки строки, есть отладочная вещь, которая печатает PID firefox, спит 4 секунды, чтобы он мог войти в систему, а затем убить firefox. Параметр about:config не позволяет восстановить сеанс.