【问题标题】:Run a Python Script in a new window from a shell script ubuntu从 shell 脚本 ubuntu 在新窗口中运行 Python 脚本
【发布时间】:2021-12-15 07:28:16
【问题描述】:

这似乎是一个愚蠢的问题。

我想从一个 shell 脚本文件在另一个命令行窗口中运行一个 python 脚本,该文件在我的一个服务器上打开我的所有程序。

目前,python 脚本在运行 shell 脚本的同一命令行窗口中打开。

我用谷歌搜索了一下,没有找到任何与此相关的内容。

提前致谢。

【问题讨论】:

  • 您的问题更适合Ask Ubuntu。这个网站是为编程相关的问题。
  • xterm -e "date" 也许?
  • @MarkSetchell 我不明白。你能澄清一下吗?
  • 它会启动一个新的终端窗口——就像你问的那样——并在其中运行 date 命令,因为我既不知道也不知道你的 Python 程序中有什么。
  • 是的,谢谢,xterm -e 命令确实有效,但我需要它来打开所有这些,而不是等待一个 python 脚本关闭,然后继续运行,因为它们 24/7 运行。我应该从一开始就澄清。

标签: python linux bash ubuntu


【解决方案1】:

如果我理解正确的话,您有一台服务器,它附有一个屏幕,并且您制作了一个外壳屏幕来打开一个新终端并运行附加到该终端的一组给定程序。

在我看来,您不希望在脚本中使用它,而是应该寻找一个 init 系统,例如在 Ubuntu 中可用的 systemd。简单地说 systemd 初始化并杀死在后台运行的进程(通常称为守护进程)。

要创建 systemd 单元文件,请在 /etc/systemd//system 创建一个新文件,我们将其命名为 example.service,并在其中写入以下内容:

[Unit]
Description=*Write description here*
Type=simple
Restart=always
RestartSec=1
User=*Write user here*
ExecStart=*Write command you wish to run here*

[Install]
WantedBy=multi-user.target

现在你可以在后台启动这个程序:

$ systemctl daemon-reload
$ systemctl start example

您也可以停止运行:

$ systemctl stop example

甚至在启动时启用它,以便它持续关机/重启:

$ systemctl enable example

您可以通过以下方式获得该程序的输出:

$ systemctl status example

有关 systemd 和所有配置选项的更多信息,您可以使用 man systemd(很长)在手册页中查找,或者在 google 中查找您希望实现的特定问题或功能。

【讨论】:

    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    相关资源
    最近更新 更多