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










