我们有一个自定义程序( test )使用以下结构,例如
myapp myapp\version1\ myapp\version1\test myapp\version1\logs\.. myapp\version2\test myapp\version2\logs\.. myapp\running -> version1
我们就这样跑
./mysqpp/running/test
running符号链接当前指向的是版本1,我们希望在程序运行时将符号链接更改为版本2,是否会有任何副作用?
(我们不想中断当前的服务,只想下次服务器重启时使用的版本2)
明确取决于:
当前正在运行的应用程序本身不会受到直接影响,因为它被加载到RAM中,并由磁盘上的inode支持。 所以没关系
问题是,如果myapp/version1/test通过path访问某些文件并使用myapp/running/logs/datafile来访问该文件。 如果应用程序在符号链接更改后打开文件,这也只是一个问题。 如果这样做的话,当然会突然打开myapp/version2下的文件。
所以简短的回答:如果myapp/version1有任何名称的引用“运行”,我不会更改符号链接。
注意:所以在下一次重新启动的时候改变一下,你可以挂上一些init.d引导脚本或者cron @boot thingy。