Я работаю над своим школьным проектом, и я уже несколько дней задерживаюсь на этом этапе. Любая помощь будет высоко оценена! Перезагрузите программу C с терминала Bash
То, что я пытался до сих пор:
- Составление сценария. Он правильно компилируется, и я могу запустить его, набрав ./process.o, но я не могу этого сделать, когда я его убью, он перезапускается. Я занимался поиском и поиском различных вещей, но ничего не работает, он всегда убивает процесс, но не перезапускает его.
- убийство -SIGKILL (ПИД)
- убить 2 (ПИД)
- убить 1 (ПИД)
- убийство -HUP 3155
- Различные другие команды, которые только убивали его, ничто не похоже на работу. Нужно ли мне модифицировать код или что-то еще? Я глубоко смущен.
Вот что я должен сделать:
Создайте новый файл с C. Сохраните его с именем
process.c
(ли это)#include <stdio.h> #include <unistd.h> int main() { printf("Creating a background process..\n"); pid_t pid = fork(); if (pid > 0) return 0; /* Host process ends */ if (pid < 0) return -1; /* Forking didn't work */ while(1) { } /* While loop */ return 0; }
Скомпилировать следующий код рабочей программы
process.o
и начать процесс. (Ли это, работает в данный момент)Используйте
kill
команду, которая перезапускаетprocess.o
(Killing процесс работает, но не перезапустить его)
Вы уверены, что это именно то, что вам нужно сделать? Потому что это не имеет большого смысла для меня. Команда 'kill' ничего не перезапустит. – kirelagin
Также использование расширений '.o' для результирующего _linked binary_ является довольно странным. – kirelagin
Да, я тоже смущен. Я знаю основы Linux и C/C# и Java, но это не имеет для меня никакого смысла. Я не знаю, должен ли я каким-то образом изменить код, но задача заключается в следующем: используйте команду kill, чтобы снова запустить process.o. – Jones