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