如何在登录后在终端中运行 python 脚本?

如何在登录后在终端中运行 python 脚本?

我已Debian virtual machine设置为自动登录,并且我想这样,当自动登录发生时,终端将打开并运行命令

python /home/pymodbus/examples/common/synchronous_client.py

Python 脚本的输出出现在终端中,这就是我首先想打开它的原因。我已经做了很多研究,尝试了很多方法,包括把这个命令放在/etc/rc.local文件,但这似乎没有做任何事情。

另外,我尝试过这个

gnome-terminal -e "python /home/pymodbus/examples/common/synchronous_client.py"

但这并没有像我想象的那样在登录时启动终端。

有人知道如何实现这一点吗?我对 Linux 还很陌生,试图弄清楚我需要哪些软件包和工具,这让我感到非常困惑!

答案1

所以,我终于搞清楚了如何做到这一点,我想在这里分享我的发现。以下是我采取的步骤:

  1. 为了让命令在启动时运行,我编辑了文件.bashrc并将/home/etc/命令放在最后,位于所有预先编写的代码之后(sudo python /home/usr/pymodbus/examples/common/synchronous_client.py)。确保您的命令中有 sudo。
  2. 为了让终端在启动时启动,我创建了一个桌面文件~/.config/autostart(如果您没有自动启动文件夹,您可以创建一个)。

  3. 在自动启动文件夹中,我创建了一个.desktop名为的文件gnome-terminal.desktop并填充如下内容:

    [Desktop Entry]
    Type=Application
    Exec=gnome-terminal
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name[en_NG]=Terminal
    Name=Terminal
    Comment[en_NG]=Start Terminal On Startup
    Comment=Start Terminal On Startup
    
  4. 最后,为了绕过运行脚本时输入密码的需要sudo,我运行了命令sudo visudo并将以下行放在文件的最末尾:

    <username> ALL=(ALL) NOPASSWD:ALL
    

我希望这能帮助任何可能尝试做与我类似事情的人!

答案2

考虑使用 cron 作为启动机制。在 cron 条目列表的底部添加@reboot python /home/pymodbus/examples/common/synchronous_client.py &(不要忘记 &)您可以设置一个在计算机启动时运行的脚本 - 不要忘记 chmod +x 相关脚本 - 这使系统能够执行该脚本。

通过输入来访问 cronsudo crontab -e

相关内容