After quite a long studying (*too many* comments in your code to read, man!
:P)..
..I got it!
I just had to extend the test that checks whether mtime has changed, making
it check also the mtime of the symbolic link (having saved it before in
lst.st_mtime).
// check if mtime is changed and the uWSGI instance must be reloaded
// handles also the case 'touch --no-dereference $INIFILE' to reload only
one instance
if (st.st_mtime > ui_current->last_mod || lst.st_mtime >
ui_current->last_mod) {
time_t new_mtime = lst.st_mtime >= st.st_mtime ? lst.st_mtime :
st.st_mtime;
emperor_respawn(ui_current, new_mtime);
}
[emperor.c:279-281<https://github.com/unbit/uwsgi/blob/master/core/emperor.c#L279>
]
Tested and it's working.
I have to finish the patch following what you touched in your
commit<https://github.com/unbit/uwsgi/commit/ff8ca18e8f3bb402a99c4392c263a9eb3b397907>
Please Roberto give me some feedback if I'm on a good path and can proceed.
Thank you
*Alberto Scotto*
skype:dasgazzo
http://about.me/alb_i986
2013/7/3 Alberto Scotto <[email protected]>
> Fair enough.
>
> But listen.
>
> What if the system (without any '--emperor-nofollow') was able to handle
> both
> 1. touch $INIFILE
> 2. touch --no-dereference $INIFILE
> (where $INIFILE is a symbolic link to $SKELFILE, of course)
> so that:
> 1) would reload all the instances linking to $SKELFILE
> 2) would reload only the single instance
>
> In other terms, the system should monitor the mtime of both the files
> (link and physical).
>
> And backward compatibility is safe! :)
>
> Is it all right until here?
>
> Now the question is how much effort it is required by implementing such a
> change.
> I'm trying to study the thing myself, reading emperor.c, any hints are
> welcome
>
> *Alberto Scotto*
>
> skype:dasgazzo
> http://about.me/alb_i986
>
>
> 2013/7/2 Roberto De Ioris <[email protected]>
>
>>
>> > Tested: seems great, thank you!
>> >
>> > So now
>> >
>> > *touch --no-dereference $INI_FILE*
>> >
>> > does the job.
>> >
>> > Do you think you will keep '--emperor-nofollow' as a separate option or
>> > you'll make it the default?
>> >
>>
>> Unless something is seriously wrong we cannot change defaults :)
>>
>> touching a single template file for reloading dozens of apps in one shot
>> is a common pattern :)
>>
>> --
>> Roberto De Ioris
>> http://unbit.it
>> _______________________________________________
>> uWSGI mailing list
>> [email protected]
>> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>>
>
>
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi