Técnicamente, no hay forma de hacer que un proceso sea imposible de matar.
Por supuesto, para los usuarios no root solo pueden eliminar procesos que tienen la misma ID de usuario que ellos, por lo que si puede crear cuentas diferentes, puede usar una ID de usuario "única" para el proceso y luego solo root podría eliminarlo.
Una solución simple, pero menos robusta, es hacer que su proceso capte tantas señales como sea posible (quizás ignorándolas). Esto solo es adecuado para ejemplos de juguetes o entornos no adversos, ya que no hay forma de captar la señal KILL (señal 9), pero de lo contrario, puede evitar ser asesinado por ellos.
Finalmente, puede hacer arreglos para que su proceso reaparezca si es asesinado. Esto también es frágil (muy frágil), pero hará que sea un poco más difícil de eliminar. Esto se puede lograr usando un proceso de monitor propio o usando inittab. Para un adversario que sabe lo que está haciendo, esto puede evitarse fácilmente eliminando múltiples procesos a la vez.