> For the complete documentation index, see [llms.txt](https://agrat.gitbook.io/admin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agrat.gitbook.io/admin/salt/state/watch-require-_in.md).

# watch, require, \*\_in

**require** — используется в том стейте, которому необходим другой стейт, при этом другой стейт ничего не знает об этом.&#x20;

**watch\_in** — используется так же, но при этом еще и вызывает перезагрузку службы (или что-то еще) если состояние текущего стейта изменилось.

**require\_in** и **watch** указывают на ровно противоположные отношения между стейтами.

Т.е. если у нас есть некоторое дерево состояний, то **require** и **watch\_in** используются в дочерних элементах и эти элементы очевидно знают своих родителей. А **require\_in** и **watch** — в родительских, которые в свою очередь не обязательно знают всех своих детей.

<https://habr.com/ru/post/218231/#comment_8340441>
