Обходное решение, которое может достигнуть, который должен добавить фильтр сервлета, чтобы сделать перезаписи URL, например, перезапись NEXTEVENT к/NEXTEVENT / (тот перед NEXTEVENT) / (тот после NEXTEVENT) или что-то подобное.
/ proc является псевдофайловой системой, что означает, что ее содержимое не является «реальными» файлами. Вместо этого содержимое является представлением внутренних структур данных ядра. Следовательно, ядру не нужно читать их - оно уже может получить доступ к данным напрямую.
/ proc используется программами пользовательского режима (т.е. неядерными), такими как ps
, чтобы узнать (например) о процессах, запущенных в системе. Существует справочная страница , которая описывает многое из того, что доступно.
Посмотрите в вашем каталоге / proc, там есть виртуальный файл, в котором перечислены все процессы, запущенные в системе, даже двоичная программа ps фактически открывает этот файл в каталоге / proc для вывода списка процессов / pid ..
Linux ProcFs Guide Linux Proc Filesystem as a Programmer's Tool
Вы ищете в нужном месте.
В частности, функция proc_pid_readdir ()
в fs / proc / base.c
используется для заполнения списка записей pid при чтении корневого каталога / proc
. Вы можете увидеть основной цикл, охватывающий все процессы и задачи в этой функции:
ns = filp->f_dentry->d_sb->s_fs_info;
iter.task = NULL;
iter.tgid = filp->f_pos - TGID_OFFSET;
for (iter = next_tgid(ns, iter);
iter.task;
iter.tgid += 1, iter = next_tgid(ns, iter)) {
filp->f_pos = iter.tgid + TGID_OFFSET;
if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
put_task_struct(iter.task);
goto out;
}
}