Нет. Когда OOM Killer убил процесс, он умер. Вы можете перезапустить его (если позволяют ресурсы), и если это что-то, управляемое системой (возможно, через inittab), оно может быть перезапущено таким образом.
Редактировать: В качестве мысленного эксперимента подумайте, что означало бы воскресение процесса. Даже если бы вы могли сохранить все состояние процесса, вы бы этого не хотели, потому что уничтоженный процесс мог быть ПРИЧИНОЙ для состояния нехватки памяти.
Так что лучшее, что вы могли бы, возможно, было бы сохранить это состояние запуска (командная строка и т. Д.). Но это тоже не хорошо, потому что, опять же, это может быть, ПОЧЕМУ система исчерпала память в первую очередь!
Кроме того, если вы воскресили процесс таким образом, невозможно сказать, что может пойти не так. Что, если процесс управляет оборудованием? Что делать, если элементы управления процессом не должны запускаться более одного раза? Что если он был подключен к tty, которого больше нет (потому что sshd был одним из уничтоженных процессов)?
Существует огромное количество контекста вокруг процесса, о котором система не может знать. Единственная разумная вещь - это то, что делает ядро: убей присоску и продолжай.
Полагаю, вы можете представить себе стратегию гибернации процесса на диск, но, учитывая, что у нас недостаточно памяти (включая подкачку), это означает либо предварительное резервирование некоторого дискового пространства, либо принятие решения о выделении дискового пространства для это на лету. Любая из этих стратегий может не соответствовать масштабам рассматриваемого процесса.
Короче говоря: нет, ты не вернешься от убийцы ООМ. Это убийца, вам просто нужно с этим справиться.