linux命令行永久运行

fiy 其他 91

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,有多种方法可以让命令行程序永久运行。

    1. 使用nohup命令
    nohup命令可以在命令行程序后面添加,将其从终端分离,并将输出重定向到一个文件中。即使关闭终端,程序也会继续运行。
    例如:nohup your_command > output.log &

    2. 使用screen命令
    screen命令是一个终端多路复用器,可以在一个终端窗口中创建多个虚拟终端。你可以在其中运行命令行程序,并在需要的时候重新连接到该虚拟终端。
    例如:
    – 打开一个新的screen会话:screen
    – 在该会话中运行命令行程序
    – 按下Ctrl + A,然后按下D键,将会话分离
    – 当需要重新连接到该会话时,使用命令:screen -r

    3. 使用systemd服务
    systemd是Linux中的一个初始化系统和服务管理器。你可以使用systemd创建一个服务单元,以启动和管理你的命令行程序。
    例如:
    – 创建一个服务单元文件,例如your_program.service,文件内容可以类似如下:
    “`
    [Unit]
    Description=Your Command Line Program
    After=network.target

    [Service]
    ExecStart=/path/to/your_command
    Restart=always

    [Install]
    WantedBy=default.target
    “`
    – 将该文件拷贝到/systemd/system目录下
    – 运行命令:systemctl enable your_program.service
    – 运行命令:systemctl start your_program.service

    无论你选择哪种方法,都可以确保你的命令行程序在后台持续运行,即使你关闭终端。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,可以使用几种不同的方法将命令行程序永久运行。以下是一些常见的方法:

    1. 使用nohup命令:可以使用nohup命令在后台运行命令行程序,并将其与终端分离。格式如下:
    “`bash
    nohup command &
    “`
    运行以上命令后,命令行程序将在后台一直运行,即使关闭了终端也不会停止。

    2. 使用screen命令:screen是一个可以创建多个终端会话的工具,可以使命令行程序在其中运行,即使终端关闭也可以重新连接回来。使用以下命令启动screen:
    “`bash
    screen
    “`
    然后,在新的终端会话中运行你的命令行程序,然后按下“Ctrl + A”再按下“D”键来分离终端会话。之后,你可以关闭终端,然后使用以下命令重新连接回来:
    “`bash
    screen -r
    “`

    3. 使用tmux命令:tmux是类似于screen的工具,可以创建多个终端会话并在其中运行命令行程序。使用以下命令启动tmux:
    “`bash
    tmux
    “`
    然后,在新的终端会话中运行你的命令行程序,然后按下“Ctrl + B”再按下“D”键来分离终端会话。之后,你可以关闭终端,然后使用以下命令重新连接回来:
    “`bash
    tmux attach
    “`

    4. 使用systemd服务:systemd是Linux系统中管理系统进程和服务的工具,可以使用systemd将命令行程序作为一个服务来运行,并在系统启动时自动启动。你需要创建一个.service文件,指定程序的路径、参数和工作目录,然后将该文件放到/systemd/system目录下。然后,你可以使用systemctl命令来管理该服务,如启动、停止或重启。
    更多详细信息,可以查看systemd的文档。

    5. 使用crontab定时任务:如果你希望命令行程序在指定时间或间隔运行,可以使用crontab来创建定时任务。你可以编辑crontab文件,指定要运行的命令行程序和其运行时间规则。然后,cron将定时执行该任务,即使终端已关闭。

    这些方法可以根据你的需求选择适合的方式将命令行程序永久运行。你可以根据实际情况选择最适合的方法来满足你的需求。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,可以使用nohup命令将命令行程序在后台运行,并且在用户退出或断开连接后继续运行。以下是将命令行程序永久运行的方法和操作流程。

    1. 利用nohup命令运行程序:
    “`
    nohup command &
    “`
    其中,`command`为要运行的命令或程序。&符号将程序放在后台运行,而不会受到用户退出或断开连接的影响。

    2. 使用disown命令与nohup命令结合:
    有时候在运行nohup命令后,仍然可能受到SIGHUP信号的影响,这会导致程序退出。可以使用disown命令将已经运行的程序与当前终端解绑,以便程序继续在后台运行。

    首先,运行nohup命令并将输出重定向到一个文件,例如:
    “`
    nohup command > output.log 2>&1 &
    “`
    `output.log`为输出日志文件。

    然后,使用`disown`命令解除程序与终端的绑定:
    “`
    disown -h %job_id
    “`
    这里的`%job_id`是通过`jobs`命令查看到的程序的作业ID。

    3. 使用tmux或screen工具:
    tmux和screen都是终端复用工具,可以创建和管理多个终端会话,并且可以使命令行程序在后台运行,并且在用户退出或断开连接后继续运行。

    首先,安装tmux或screen工具:
    “`
    sudo apt-get install tmux #对于Debian/Ubuntu系统
    “`

    “`
    sudo yum install screen #对于CentOS/RHEL系统
    “`

    然后,启动tmux或screen会话:
    “`
    tmux new -s session_name #对于tmux
    “`

    “`
    screen -S session_name #对于screen
    “`
    这里的`session_name`是会话的名称,可以根据需求自定义。

    运行命令或程序:
    “`
    command
    “`

    按下Ctrl + B(tmux)或Ctrl + A(screen),然后按下D键,将会话移至后台。

    最后,当需要回到会话时,可以运行以下命令:
    “`
    tmux attach -t session_name #对于tmux
    “`

    “`
    screen -r session_name #对于screen
    “`

    通过使用tmux或screen工具,可以在后台运行命令行程序,并且可以随时回到会话进行查看和操作。

    以上是在Linux系统中实现命令行程序永久运行的几种方法和操作流程。可以根据实际需要选择其中一种方法来运行程序。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部