Files
dify_market_manager_gui/cleanup-lock-files.js
2025-07-22 17:53:26 +08:00

94 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const fs = require('fs')
const path = require('path')
const { execSync } = require('child_process')
console.log('=== 清理锁文件脚本 ===')
// 获取用户数据路径
function getUserDataPath() {
const platform = process.platform
const home = process.env.HOME || process.env.USERPROFILE
if (platform === 'win32') {
return path.join(process.env.APPDATA, 'dify-market-manager-gui')
} else if (platform === 'darwin') {
return path.join(home, 'Library', 'Application Support', 'dify-market-manager-gui')
} else {
return path.join(home, '.config', 'dify-market-manager-gui')
}
}
// 可能的锁文件位置
const possibleLockFiles = [
// 新的应用名称
path.join(getUserDataPath(), 'single-instance-lock'),
path.join(getUserDataPath(), 'lockfile'),
path.join(getUserDataPath(), '.lock'),
// 旧的应用名称
path.join(process.env.APPDATA || '', 'market-manager-gui', 'single-instance-lock'),
path.join(process.env.APPDATA || '', 'market-manager-gui', 'lockfile'),
path.join(process.env.APPDATA || '', 'market-manager-gui', '.lock'),
// 当前目录
path.join(process.cwd(), 'single-instance-lock'),
path.join(process.cwd(), 'lockfile'),
path.join(process.cwd(), '.lock'),
// 临时目录
path.join(process.env.TEMP || '', 'single-instance-lock'),
path.join(process.env.TEMP || '', 'lockfile'),
path.join(process.env.TEMP || '', '.lock'),
]
console.log('用户数据路径:', getUserDataPath())
console.log('当前目录:', process.cwd())
let cleanedCount = 0
// 清理锁文件
for (const lockFile of possibleLockFiles) {
if (fs.existsSync(lockFile)) {
try {
console.log(`发现锁文件: ${lockFile}`)
// 读取锁文件内容
const content = fs.readFileSync(lockFile, 'utf8')
console.log(`锁文件内容: ${content}`)
// 尝试删除文件
fs.unlinkSync(lockFile)
console.log(`✅ 成功删除: ${lockFile}`)
cleanedCount++
} catch (error) {
console.log(`❌ 删除失败: ${lockFile}`, error.message)
// 在 Windows 上尝试使用 del 命令
if (process.platform === 'win32') {
try {
execSync(`del /F /Q "${lockFile}"`, { stdio: 'ignore' })
console.log(`✅ 使用 del 命令删除: ${lockFile}`)
cleanedCount++
} catch (delError) {
console.log(`❌ del 命令也失败: ${lockFile}`)
}
}
}
}
}
console.log(`\n清理完成,共删除 ${cleanedCount} 个锁文件`)
// 检查是否有相关进程在运行
if (process.platform === 'win32') {
try {
console.log('\n检查相关进程:')
const result = execSync('tasklist /FI "IMAGENAME eq 龙岗区百千万AI智能体共创平台.exe" /FO CSV /NH', { encoding: 'utf8' })
console.log(result)
} catch (error) {
console.log('没有找到相关进程')
}
}
console.log('\n清理完成现在可以重新启动应用了。')