我需要运行一个 24 小时不间断的批处理程序。在断电时,我已经将 Ubuntu Server 14.04 配置为在电源恢复后立即启动,自动登录并启动程序。
该过程基于 GPU 功率,超频后效果更佳。我能够通过配置 xorg.conf 并执行 xinit 来完成此操作。当我执行此操作时,屏幕变白,命令行消失。我使用远程 SSH 客户端执行“overclock.sh”并启动程序,它成功了。
我的问题是,由于我不能每次都使用远程客户端,执行 xinit 后如何执行其他脚本?
CRTL+ALT+F1 返回命令行,但如何在启动脚本中使用它?
我想在启动时执行: - xinit; - overclock.sh; - start_program.sh;
更新时间:2017 年 8 月 27 日:现在,我更加了解正在发生的事情:
我在控制台环境tty1中。
当运行“xinit”时,它会在 tty7 上打开一个粗略的屏幕。
通过按下 CRTL+ALT+F1,我回到终端 tty1,但卡在“xinit”命令上。这就是为什么 .bash-login 脚本之后不执行任何其他命令的原因。
按下 CTRL+C 会停止 tty7 环境,并且超频不起作用。
现在最奇怪的部分:如果我按下 CTRL+Z,我返回控制,超频有效,但是当我运行程序时,只有 GPU0 开始工作。
还尝试了“setsid xinit &> /dev/null”,同样,一切都很完美,但只有 GPU0 可以工作。
7 另一种方法:在粗略屏幕 tty7 中,我用鼠标单击上面的命令行,输入 overclock.sh,它就可以正常工作。所有 8 个 gpu 都可以正常工作。这似乎更接近答案。
我如何制作一个批处理文件以便在 tty7 启动时执行命令?
2017年8月28日更新:
我解决了。魔法是研究 xinit 调用的 xterm。它接收参数 -e“命令”。将脚本作为命令。
答案1
使用以下命令将脚本添加到你的 crontab crontab -e
:
@reboot /path/to/overclock.sh; /path/to/start_program.sh
如果您想将其添加到根 crontab ( sudo crontab -e
),另外您还需要设置一个用户,例如root
:
@reboot root /path/to/overclock.sh; /path/to/start_program.sh
阅读更多man 5 crontab
。
答案2
答案3
我尝试了其他 2 个答案所建议的方法,但失败了。我发现最好的办法是在桌面设置中设置自动启动脚本。