如何使Shell脚本在重新启动时正确执行

卡莱布·贝克(Caleb Baker)

我有一个Shell脚本,该脚本从github获取更新,然后运行它检索的代码。它位于/home/me/Desktop/refreshCode.sh

-- refreshCode.sh --

#!/bin/bash

cd /home/me/src/ProductionMonitor
sudo /usr/bin git -C /home/me/src/ProductionMonitor pull
sudo cp /home/me/src/ProductionMonitor/* /home/me/Desktop/Production
cd /home/me/Desktop/Production
sudo /usr/bin/python3 prodmain.py >> logfile.data

我知道该外壳程序可以手动启动并按预期运行。它打开了tkinter窗口,我可以与屏幕进行交互。

但是我似乎无法正确启动任何东西。

我尝试为@reboot设置crontab,但未成功。它从不显示用户界面

我这样设置了Systemd服务。

-- prodmon.service --

[Unit]
Description=Service to run production monitor
After=multi-user.target

[Service]
Type=forking
ExecStart=/home/me/Desktop/refreshCode.sh
User=caleb
Group=caleb
WorkingDirectory=/home/me/Desktop/Production/
PIDFile=/var/run/prodmon.pid

[Install]
WantedBy=multi-user.target

引导后检查服务的状态,表明服务正在运行。但是,tkinter用户界面从不显示。

吉姆·杜拉特(Ljm Dullaart)

您可能不应该把所有的东西都洗掉。一切都在您自己的目录下。

您的问题的重点是,脚本不知道该窗口的显示位置。尝试添加

echo "DISPLAY=$DISPLAY" >> logfile.data

您可能会看到

DISPLAY=

在`logfile.data中。此外,如果您使用:

/usr/bin/python3 prodmain.py >> logfile.data 2>/tmp/errorfile

您可能会看到/tmp/errorfile类似以下内容的:

prodmain: Xt error: Can't open display: 
prodmain: DISPLAY is not set

因此,这就是它在启动时不显示的原因。

现在如何解决:这在很大程度上取决于您要的内容。您可以从~/.xinitrc登录图形环境开始启动程序您可以将工作分为两部分:在启动时执行gitcp,以及prodmain从中执行.xinitrc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Debian上关闭/重新启动时是否可以首先执行脚本?

来自分类Dev

重新启动时我的脚本从哪里开始

来自分类Dev

重新启动时Nodemon不执行命令

来自分类Dev

每次重新启动时,如何使Docker容器每次运行脚本?

来自分类Dev

如何使用 Bash 脚本在每次重新启动时挂载分区?

来自分类Dev

如何设置php在重新启动时启动?

来自分类Dev

AccessibilityService在启动时重新启动

来自分类Dev

每次Django重新启动时如何调用函数?

来自分类Dev

每次重新启动时,分区目录如何更改?

来自分类Dev

如何在每次重新启动时更改initcwnd?

来自分类Dev

如何在重新启动时擦除 Ubuntu

来自分类Dev

如何在每次重新启动时重新启动服务?

来自分类Dev

重新启动时保留/ tmp

来自分类Dev

每当特定的systemd服务重新启动时,如何触发自定义脚本运行

来自分类Dev

每当特定的systemd服务重新启动时,如何触发自定义脚本运行

来自分类Dev

如何使用 Shell 脚本重新启动 docker 服务

来自分类Dev

如何在每次重新启动时在Windows 8.1中保留Classic Shell开始菜单?

来自分类Dev

简单的bash脚本不想在重新启动时启动

来自分类Dev

使用Shell脚本在重新启动时运行Android Studio

来自分类Dev

Ubuntu 18.04.2 LTS | 重新启动并选择正确的启动设备或在尝试双启动时插入启动媒体

来自分类Dev

仅在关机时不重新启动时在systemd服务上运行脚本

来自分类Dev

终端重新启动时在特定的终端选项卡中执行命令

来自分类Dev

Mule Batch-如何在服务器重新启动时停止自动重新启动?

来自分类Dev

如何在启动时让ConEmu执行Powershell脚本?

来自分类Dev

如何在启动时执行许多循环脚本?

来自分类Dev

如何在启动时自动运行Shell脚本?

来自分类Dev

如何避免每次重新启动时重新安装ruby?

来自分类Dev

如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

来自分类Dev

服务器重新启动时如何使SOLR“启动”到云模式

Related 相关文章

  1. 1

    在Debian上关闭/重新启动时是否可以首先执行脚本?

  2. 2

    重新启动时我的脚本从哪里开始

  3. 3

    重新启动时Nodemon不执行命令

  4. 4

    每次重新启动时,如何使Docker容器每次运行脚本?

  5. 5

    如何使用 Bash 脚本在每次重新启动时挂载分区?

  6. 6

    如何设置php在重新启动时启动?

  7. 7

    AccessibilityService在启动时重新启动

  8. 8

    每次Django重新启动时如何调用函数?

  9. 9

    每次重新启动时,分区目录如何更改?

  10. 10

    如何在每次重新启动时更改initcwnd?

  11. 11

    如何在重新启动时擦除 Ubuntu

  12. 12

    如何在每次重新启动时重新启动服务?

  13. 13

    重新启动时保留/ tmp

  14. 14

    每当特定的systemd服务重新启动时,如何触发自定义脚本运行

  15. 15

    每当特定的systemd服务重新启动时,如何触发自定义脚本运行

  16. 16

    如何使用 Shell 脚本重新启动 docker 服务

  17. 17

    如何在每次重新启动时在Windows 8.1中保留Classic Shell开始菜单?

  18. 18

    简单的bash脚本不想在重新启动时启动

  19. 19

    使用Shell脚本在重新启动时运行Android Studio

  20. 20

    Ubuntu 18.04.2 LTS | 重新启动并选择正确的启动设备或在尝试双启动时插入启动媒体

  21. 21

    仅在关机时不重新启动时在systemd服务上运行脚本

  22. 22

    终端重新启动时在特定的终端选项卡中执行命令

  23. 23

    Mule Batch-如何在服务器重新启动时停止自动重新启动?

  24. 24

    如何在启动时让ConEmu执行Powershell脚本?

  25. 25

    如何在启动时执行许多循环脚本?

  26. 26

    如何在启动时自动运行Shell脚本?

  27. 27

    如何避免每次重新启动时重新安装ruby?

  28. 28

    如何使通过Puma和Capistrano部署的Rails应用程序在重新启动时启动

  29. 29

    服务器重新启动时如何使SOLR“启动”到云模式

热门标签

归档