ActiveSheet
является объектом Excel. Я думаю, что вы хотите использовать ActiveSlide
для PowerPoint.
Причина, что fork-бомба работает, состоит в том, потому что существует конечный предел количеству процессов, которые могут работать в любой момент, и fork-бомба разработана для заполнения этого предела.
, поскольку код fork-бомбы Вы обеспечили, умирает, если он не может породить дочерний процесс, родительские процессы на самом деле не бродят вокруг, но то, что дети продолжают создавать новый grand*-children, сохраняет таблицу процессов полной.
, Таким образом, решение для сна разработано для крадений в некоторых процессах, которые просто спят в течение короткого промежутка времени, и для каждого спящего процесса, которому удается быть созданным, существует меньше случая fork-бомб. В конечном счете спящие процессы заполняют таблицу процесса сами, и fork-бомбы вымирают.
, После того как таблица процессов полна от спящих процессов, цикл с условием продолжения может быть уничтожен, и спящие процессы умрут, после того как их время сна закончилось. проблема решила .
, Как был уже упомянут, важная часть команды zsh является выполнением в фоне &
, таким образом, команда удара в основном совпала бы с данный в других ответах:
while (sleep 100 &) do; done
я не думаю, что nohup
/ !
часть важна, если Вы не хотите выйти из системы в течение времени сна, но я был бы рад быть разъясненным, если я неправ.
Сначала fork-бомба может быть записана:
foo()
{
foo|foo&
}
foo
, Который делает это немного более ясным - каждое повторение запускает два подпроцесса, затем умирает. Таким образом, если разветвляющиеся сбои, это не будет бродить вокруг.
Поэтому все, что мы должны сделать, заставляют разветвление временно перестать работать. Таким образом мы создаем процессы, которые спят 100 и занимают место процесса, как спящие процессы делают.
zsh &!
похож &
, но отрицает новый процесс (не уничтожает его при выходе из системы) - это, вероятно, не важно в этом примере. ( руководство ), Это может быть заменено nohup
.
Поэтому удар:
while (nohup sleep 100 &) do; done
должен работать.
Очень интересный вопрос!
В соответствии с той статьей Wikipedia, цель полной команды состоит в том, чтобы создать много безопасных заданий, которые отключат fork-бомбу, потому что она больше не не будет способный породить еще больше детей.
Согласно zsh руководство ,
, Если задание запускается с
&|' or
&!', затем, что задание сразу отрицают. После запуска это не имеет места в таблице задания и не подвергается функциям управления заданиями, описанным здесь.
я не уверен, как достигнуть того же с ударом. Однако что-то как следующее могло бы сделать:
nohup sleep 100 &
Я тот парень, который написал ту часть статьи в Википедии (и кто «открыл» это лекарство после случайного запуска вилочной бомбы в моей системе!).
Причина "&!" вместо «&» действительно предотвращает выполнение zsh управления заданиями над новым процессом, то есть пытается позаботиться о том, когда и завершится ли он. Я точно не помню, почему контроль над работой был проблемой, когда я это пробовал, но это было. Вы действительно можете попробовать это, чтобы увидеть, как работает «лекарство» и что произойдет, если вы не предотвратите контроль над работой. Возможно, проблема с управлением заданиями была связана с какой-то ошибкой в zsh, которой даже нет в bash, и, возможно, она больше не актуальна и в zsh.
Так что попробуйте просто «&» с bash, и если задание мешает управление, попробуйте отключить его ("set + m"