Во-первых, не делай этого.Во-вторых, все равно не делайте этого.
В-третьих, если ваша программа оооочень крута, что она никогда не перестает работать, вы всегда можете предоставить возможность установить службу, которая запускает вашу программу и перезапускает ее, если она умирает.Но подумайте об этом долго, потому что пользователи обычно раздражаются из-за программ, которые не умрут.Вместо этого сделайте вашу программу достаточно полезной, чтобы никто не ХОТЕЛ ее остановить, и перезапустите, если она умрет.
РЕДАКТИРОВАТЬ: ОК, так что, учитывая ваше обновление ОП, давайте попробуем несколько мыслей здесь.
Необходимо рассмотреть два основных случая: если у конечного пользователя есть права администратора на машине, в общем случае вы ничего не можете сделать.То, что вы пытаетесь сделать, может быть обойдено кем-то с правами администратора.
Так что, если у пользователя нет прав администратора.Тогда пользователи не могут уничтожить произвольные процессы, запущенные пользователем root / administrator.В этом случае вы можете попытаться установить программное обеспечение как стиль демона / всегда работающий.В Windows вы должны установить как системную службу, которая автоматически запускается при загрузке.Для Solaris вы должны использовать SMF и установить автоматический перезапуск по завершении.В Linux вы можете сделать что-то вроде оболочки, принадлежащей пользователю root, которая будет перезапускать программу навсегда, если она завершится.