Files
ccs/src/cursor/cursor-daemon-pid.ts
T

50 lines
1.1 KiB
TypeScript

import * as fs from 'fs';
import * as path from 'path';
import { getCcsDir } from '../utils/config-manager';
function getCursorDir(): string {
return path.join(getCcsDir(), 'cursor');
}
function getPidFilePath(): string {
return path.join(getCursorDir(), 'daemon.pid');
}
export function getPidFromFile(): number | null {
const pidFile = getPidFilePath();
try {
if (fs.existsSync(pidFile)) {
const content = fs.readFileSync(pidFile, 'utf8').trim();
const pid = parseInt(content, 10);
return isNaN(pid) ? null : pid;
}
} catch {
// Ignore errors
}
return null;
}
export function writePidToFile(pid: number): void {
const pidFile = getPidFilePath();
try {
const dir = path.dirname(pidFile);
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
}
fs.writeFileSync(pidFile, pid.toString(), { mode: 0o600 });
} catch {
// Ignore errors
}
}
export function removePidFile(): void {
const pidFile = getPidFilePath();
try {
if (fs.existsSync(pidFile)) {
fs.unlinkSync(pidFile);
}
} catch {
// Ignore errors
}
}