सबसे जटिल और सबसे वास्तविक समय समाधान उपयोगकर्ता जाल समारोह में लिखना है .zshrc जो जब फंसे सिग्नल पकड़ा जाता है, तो स्रोत .zshrc अपने आप।
ऐशे ही:
~$ cat .zshrc
trap includerc USR1
includerc() {
source $HOME/.zshrc
}
alias xxx='df'
Zsh के भीतर, यह अब देखा जा सकता है:
zshsession> alias
which-command=whence
xxx=df
अब .zshrc में कुछ बदलाव हुए हैं
~$ cat .zshrc
trap includerc USR1
includerc() {
source $HOME/.zshrc
}
alias xxx='df -g'
alias yyy='someothercommand'
यहाँ मुश्किल हिस्सा आता है। का उपयोग करते हुए inotify देख रहे .zshrc या एक चौकीदार स्क्रिप्ट द्वारा जो के अंतिम संशोधन की जांच करता है .zshrc एक कमांड चालू होता है जो USR1 सिग्नल को सभी को भेजता है zsh उपयोगकर्ता की प्रक्रियाएं। अब मैंने इसे दूसरे शेल में चलाया:
~$ ps -a | awk '$4=="zsh" {print $1}' | xargs kill -SIGUSR1
और परिणाम है:
zshsession> alias
which-command=whence
xxx='df -g'
yyy=someothercommand
killall -s USR1 zshइस ps-awk-xargs निर्माण की तुलना में।