Linux运行程序
一、简介
在许多要运行的程序中,往往执行./程序名字就直接运行,但是会占用终端导致别的操作十分不便,可以试用以下的方法将程序放到后台运行。
二、操作
1.在命令末尾加上 &
符号:
#这会将`command`在后台运行,并且不会占用你的终端。
command &
2. 使用 nohup
命令:
#`nohup`命令可以让程序在后台运行,并且会将输出重定向到当前文件夹下的`nohup.out`文件。这样即使你退出终端,程序也会继续运行。
nohup command &
#扩展*
nohup command > /dev/null 2>&1 &
#nohup:不间断在后台运行一个程序。
#&:为后台运行
#2>&1:将错误重定向到标准输出上��出上
3. 使用 disown
命令:
首先,运行命令并将其放入后台(使用&
),然后使用 disown
命令将它从shell的作业表中移除,使其不再受到终端会话的控制:
command &
disown
4. 使用 screen
命令:
screen
是一个终端多路复用器,它可以创建多个终端会话,并且允许你在后台运行程序。
screen
# 在新的终端窗口中运行你的程序
#按下 `Ctrl + A` 然后 `D` 来将`screen`会话放入后台。可以使用`screen -r`来重新连接到之前的`screen`会话。
5. 使用 tmux
命令:
tmux
是另一个终端多路复用器,类似于screen
,它允许你创建多个终端窗口并在后台运行程序。
bashCopy codetmux
#在新的终端窗口中运行你的程序
#按下 `Ctrl + B` 然后 `D` 来将`tmux` 会话放入后台。可以使用 `tmux attach` 命令来重新连接到之前的`tmux`会话。
6. 使用 systemd
服务:
创建一个systemd
服务单元文件,使你的程序在系统启动时作为服务后台运行。创建一个 .service
文件,然后将其放在/etc/systemd/system/
目录下,内容类似于:
[Unit]
Description=Description of your service #服务的描述,用于描述服务的作用。
Documentation=Additional documentation about your service #可选项,提供有关服务的附加文档。
After=network.target # Dependencies, if any #指定服务的启动顺序依赖关系
[Service]
ExecStart=/path/to/your/command #指定要运行的命令或脚本的路径。
WorkingDirectory=/path/to/your/working/directory #指定要运行的命令或脚本的路径。
User=nobody #指定服务运行的用户和用户组。
Group=nogroup
Restart=always #指定服务何时应该被重启。常用的选项包括 always、on-failure 等。
Environment=KEY=value #可选项,允许你设置环境变量。
[Install]
WantedBy=multi-user.target #指定服务应该在哪些target(例如 multi-user.target)中启动。
启用并启动这个服务:
systemctl enable your-service-name.service
systemctl start your-service-name.service
标签:service,screen,程序,终端,后台,运行
From: https://blog.51cto.com/u_14871454/8924539