Update install.nsi: also write autorun info in HKCU to ensure autorun
这样会不会启动两遍呀。
这样会不会启动两遍呀。
多启动自杀的事情已修,这样是想双保险,免得hklm的没成功
要等那些报不启动的来确认下,结果还没有人响应就是了
如果做成服务跨用户通信有麻烦的话,
考虑做成一个任务计划吗?比写在注册表里面更高优先级启动,可以解决:#612
并且,一定可以用「启动失败后每隔 1 秒重试一次」或者「启动后,每隔 10 秒再启动一次」这样的选项保证一定会拉起来。
调用任务计划启动 start_service.bat 即可,
看了一下,用 nsis 大概是可以做到的
https://nsis.sourceforge.io/Scheduled_Tasks
如果做成服务跨用户通信有麻烦的话,
考虑做成一个任务计划吗?比写在注册表里面更高优先级启动,可以解决:#612
并且,一定可以用「启动失败后每隔 1 秒重试一次」或者「启动后,每隔 10 秒再启动一次」这样的选项保证一定会拉起来。
调用任务计划启动 start_service.bat 即可,
看了一下,用 nsis 大概是可以做到的
https://nsis.sourceforge.io/Scheduled_Tasks
用户角度理解的问题不一样。
如果是启动不够快,看是更启动项的设置方式要调整(顺序?注册表位置?或者添加启动计划任务之类)
如果是开机后没有运行到启动项,开机后服务没有启动有可能有很多种原因,目前分层看待主要两种
- 启动项未正确执行
- 启动项执行后,在某种系统启动初期的状态下,代码运行到某个位置出现了segfault退出
加计划任务,外部ahk守护,或者在TSF里面加上“进程守护”等,是可以在服务崩掉的时候强制拉起服务,大力出奇迹的做法,用户角度似乎问题解决了,但是实际是将问题埋下去了。如果原因是上述的假设中的第2条,那这个bug将以后永远都不要想有机会修复它。
这个pr其实尝试的事情是:假定HKLM中的启动项执行在某个系统版本中会有问题,增加一个HKCU上的启动项让启动期间确保至少有一次启动项可以被执行。如果这个有报问题的用户的正向有效反馈,那这个pr就可以合并了。
这个pr相比外部守护,TSF守护的区别在于,虽然这个也是大力出奇迹的操作,但是它的影响面仅限在了启动期间,不会影响后续的运行逻辑。
学习👍