我有一個(gè)用Go編寫的程序,它以編程方式創(chuàng)建和管理屏幕。下面是一個(gè)示例:_, err := exec.Command("screen", "-S", "screen-"+strings.ToLower(name), "-X", "stuff", command+"\n").Output()這工作正常。當(dāng)我控制+C程序時(shí),創(chuàng)建的屏幕保持打開狀態(tài)(我想要的!但是,我已將其轉(zhuǎn)換為 Ubuntu 上的后臺(tái)服務(wù)。當(dāng)我運(yùn)行時(shí),它會(huì)在沒有警告的情況下殺死那些屏幕。附加到屏幕也不會(huì)阻止此操作(立即轉(zhuǎn)到 )。但是,它不會(huì)殺死外部創(chuàng)建的屏幕。systemctl stop <service>[screen terminated]這是我的:.service[Unit]Description=>servicename> background serviceAfter=network-online.target[Service]ExecStart=/usr/lib/<servicename>/service[Install]WantedBy=multi-user.target我:rules%: dh $@ --with systemd --paralleloverride_dh_auto_install: dh_auto_install dh_systemd_enable || true dh_systemd_start || true我:controlPackage: <name>Version: 0.2Architecture: amd64Priority: optionalMaintainer: <me>Description: <description>Depends: screen, iptablesBuild-Depends: dh-systemd (>=1.5)我無法想象什么會(huì)導(dǎo)致這些屏幕死亡。我很確定它們沒有被附加到程序中,因?yàn)樗鳛榭蓤?zhí)行文件運(yùn)行良好。系統(tǒng)日志中除了“服務(wù)已停止”和“服務(wù)已啟動(dòng)”之外,未提及任何內(nèi)容。我嘗試過在root下制作屏幕,不同的用戶,運(yùn)行空屏幕與運(yùn)行程序等。沒什么值得注意的。有什么想法嗎?
Systemctl(?) 殺死分離的屏幕
函數(shù)式編程
2022-08-01 15:28:04