如果我做错了,我的第一篇文章如此道歉.
我在python3上使用tkinter编写了一个python脚本,它在IDLE3中运行完全正常.我希望在启动Pi时运行此脚本,因此执行以下过程以使用cron作业运行@reboot. http://www.instructables.com/id/Raspberry-Pi-Launch-Python-script-on-startup/step4/Add-to-your-crontab/
最初我得到了初始化错误,所以我添加了'/ bin/sleep 120;' 到@reboot行,所以它现在读取如下,似乎等待足够长的时间,以便在启动后初始化所有内容.@reboot/bin/sleep 120; sh /home/pi/launcher.sh>/home/pi/logs/cronlog 2>&1
但是在此之后我的cronlog显示以下错误:
回溯(最近通话最后一个):文件"walk.py",第29行,在MyGUI = TK()文件"/usr/lib/python3.2/tkinter/ 初始化的.py",线1701,在初始化 self.tk = _tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)_tkinter.TclError:没有显示名称,没有$ DISPLAY环境变量
现在我在其他线程上看到了这个错误,很多似乎与初始化我不使用的库有关.我想补充一点,我的代码从空闲运行良好,从终端运行良好,我已经制作了launcher.sh并使其可执行,如果我从终端运行'sh launcher.sh'它工作正常,所以launcher.sh shell脚本看起来不错.但在启动时我得到上述错误,我不明白为什么?请帮忙.
我没有这台机器上的代码副本,但我会尝试将其复制并发布作为评论,如果有人认为这将有所帮助.
在此先感谢保罗
以下完整代码
import sys
import tkinter #might not be needed
from tkinter import *
import pymysql
import os.path
import datetime
import json
#Define local database connection
try:
localdb = pymysql.connect(host="localhost", user="root", passwd="p054169q", db="walk")
except Exception as e:
sys.exit('Can not locate localdb')
lcur = localdb.cursor()
#Define web database connection (Maybe add later for easy sync) …Run Code Online (Sandbox Code Playgroud) 我在调试DeviceBootReceiver中的一些代码时遇到问题(处理android.intent.action.BOOT_COMPLETED意图).我想调试这个位,但是当设备重新启动时,如何使调试器保持活动状态?是否有任何人为此遇到任何黑客攻击?
我想做什么:
有什么想法吗?
我有一个进程,我想尽快开始我的系统rebooted,所以我使用upstart脚本,但有时我注意到的是我的进程在硬重启(插拔和启动机器)期间没有启动所以我认为我的暴发脚本在硬重启后没有被踢进去.我相信Hard Reboot没有运行级别.
我很困惑,为什么有时在重启期间它有效,但有时它不起作用.我该如何调试呢?
以下是我的新贵脚本:
# sudo start helper
# sudo stop helper
# sudo status helper
start on runlevel [2345]
stop on runlevel [!2345]
chdir /data
respawn
pre-start script
echo "[`date`] Agent Starting" >> /data/agent.log
sleep 30
end script
post-stop script
echo "[`date`] Agent Stopping" >> /data/agent.log
sleep 30
end script
limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec python helper.py
Run Code Online (Sandbox Code Playgroud)
有没有办法调试出来发生了什么?我相信,我可以很容易地重现这一点.关于我在这里可以做什么的任何指示?
注意:
在重新启动期间,有时我会在pre-start脚本中看到我的日志记录,但有时我在重新启动后根本看不到日志记录,这意味着我的upstart脚本未被触发.有什么我需要在运行级别上更改以使其工作?
我有一个在Hypervisor中运行的VM,我正在使用Ubuntu.
我的 Nexus 5 带有 AOSP ROM 4.4.4。
我试图从设备中“拉出”boot.img,解压它,编辑“init.rc”,将其重新打包为 boot.img 并将其刷新到设备。
我遵循了许多指南,但没有一个与我的情况相同:
(http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.html和http://www.digitalinternals.com/mobile/android-mmc-mmcblk-partition -布局/259/)
ls -l /dev/block/platform/msm_sdcc.1/by-name/我得到的引导是/dev/block/mmcblk0p19:lrwxrwxrwx 根根 1971-02-28 21:30 启动 -> /dev/block/mmcblk0p19
我使用以下命令创建了 boot.img:cat /dev/block/mmcblk0p19 > /mnt/sdcard/boot.img并将此 boot.img 拉到我的电脑上。此 boot.img 约为 23 MB。
我使用http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.htmlunmkbootimg中的工具创建了 boot.img并得到了 2 个文件:哪个大约 500 KB,哪个约为 8.4 MB。我得到的详细信息是:initramfs.cpio.gzkernel.gz
内核大小 8405280
内核地址0x8000
Ramdisk 大小 498992
虚拟盘地址0x2900000
次要尺寸 0
辅助地址0xf00000
内核标签地址0x2700000
Flash页面大小2048
板名称为“”
命令行“console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1”
提取kernel.gz
...正在提取 initramfs.cpio.gz …
我正在寻找内核如何进行 PCI/PCIe 枚举和 BAR 分配。
我以为内核会在启动时分配BAR的PCI基地址,但是当我尝试pci earlydump(在内核初始PCI子系统之前)查看BAR值时,我发现所有基地址都已经分配了!?这是否意味着 BIOS 进行 PCI/PCIe 枚举和 BAR 分配?BIOS 如何知道每个 pci 设备的基地址并在没有冲突的情况下分配这些地址?
如果是这样,嵌入式系统(没有 BIOS )如何为 PCI/PCIe 设备枚举和分配基地址?
顺便说一下,我的电脑是 Ubuntu 14.04.1 LTS (x86_64)
如何使用bcdedit. 例如,我尝试了以下步骤,但未添加启动项。
bcdedit /create /d "LinuxLoader" /application osloader
Run Code Online (Sandbox Code Playgroud)
这将返回一个新的 guid(比如 newguid)
bcdedit /set {newguid} device partition=S:
bcdedit /set {newguid} path \boot\efi\bootx64.efi
bcdedit /set {fwbootmgr} displayorder {newguid} /addfirst
Run Code Online (Sandbox Code Playgroud)
提前致谢。
即使我使用 Ubuntu 的 efibootmgr 更改它,Windows 也会继续覆盖 UEFI 引导顺序。但是 BootNext 选项不会被覆盖,也就是说,我可以将 BootNext 设置为 Ubuntu,它会在重新启动时引导到 Ubuntu。因此,我编写了以下脚本以在每次启动到 Ubuntu 时运行:
efibootmgr > file.txt
CURR="$(grep "BootCurrent" file.txt | grep -Eo "[0-9]{4}")"
efibootmgr -n $CURR
rm file.txt
exit 0
Run Code Online (Sandbox Code Playgroud)
这确保我在从 Ubuntu 重新启动时可以启动到 grub。有没有办法从 Windows 执行相同的操作,以便在从 Windows 重新启动时可以启动到 grub?
编辑 :
运行 bcdedit /v 给出(没有 Ubuntu 条目):
Windows Boot Manager
--------------------
identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device partition=\Device\HarddiskVolume1
path \EFI\ubuntu\shimx64.efi
description Windows Boot Manager
locale en-US
inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default {9b4692db-d6e1-11e6-8040-f733056555ec}
resumeobject {9b4692da-d6e1-11e6-8040-f733056555ec}
displayorder {9b4692db-d6e1-11e6-8040-f733056555ec}
toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout 0
Windows Boot …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序需要尽可能短的启动时间/TTL,并且 GPU 连接到 GCP CE 中的虚拟机。为了降低成本,我的基础设施依赖于随着需求的增加/减少而启动和停止实例。
我在没有 GPU 的情况下使用自定义图像实现了不到 5 秒的启动时间,但一旦连接 GPU,“运行”时间总是超过 20-30 秒。
我尝试了多种不同的发行版、清晰的 Linux、预打包的 Nvidia 驱动程序映像、Fedora 的最小安装、最小化的 Debian、内核和用户空间的减少 - systemd-analyze 说我的启动时间是 3 秒,但使用 GPU 启动虚拟机需要 20 秒 -跑步前“暂存”30 秒。
仅当 GPU 连接到 VM 时才会发生这种情况,并且移除后,VM 将在 systemd-analyze 提到的时间内启动。它在所有发行版和启动映像中都是一致的。
我是否缺少任何软件包或文档来加快连接 GPU 的暂存时间,或者这是否是 GCP 的 GPU 实例内部暂存的限制?
我非常感谢任何帮助或建议。
如果您也遇到此问题并想跟踪其进度,我创建了一份问题报告: https://issuetracker.google.com/issues/200575905
我无法使用 Windows Server 2019 恢复实例的快照。当恢复机器开启时生成的快照时,我得到一台机器无法启动并且总是蓝屏的结果。当恢复关闭机器时生成的快照时,一切正常,恢复的机器正常启动。串口 = inaccessible_boot_device 0xffff 谷歌云平台
boot windows-server google-compute-engine google-cloud-platform windows-server-2019
boot ×10
android ×2
linux ×2
linux-kernel ×2
uefi ×2
bcdedit ×1
bcdstore ×1
build ×1
cmd ×1
cron ×1
gpu ×1
macos ×1
pci ×1
powershell ×1
python ×1
python-3.x ×1
raspberry-pi ×1
terminal ×1
tkinter ×1
ubuntu-12.04 ×1
ubuntu-14.04 ×1
upstart ×1
windows ×1