linux如何启动进程
在 Linux 中启动进程有多种方式,根据使用场景不同,常见方法如下:
一、直接启动(前台进程)
在终端直接执行命令,就是一个进程:
ls
sleep 10
特点:
进程在当前终端运行
会占用终端,直到进程结束
二、后台启动进程
1️⃣ 使用 &
sleep 100 &
进程在后台运行
终端仍可继续使用
输出仍可能打印到终端
查看后台任务:
jobs
回到前台:
fg %1
三、脱离终端运行(推荐)
1️⃣ 使用 nohup
nohup sleep 1000 > out.log 2>&1 &
特点:
关闭终端,进程仍在运行
输出重定向到 out.log
2️⃣ 使用 disown
sleep 1000 &
disown
四、一次性定时启动(at)
at now + 1 minute
at> sleep 100
at> Ctrl+D
查看任务:
atq
五、定时启动(周期性)
使用 cron
编辑定时任务:
crontab -e
示例(每分钟执行一次):
* * * * * /path/to/script.sh
六、系统服务方式(长期运行)
1️⃣ systemd(最常见)
创建服务文件:
sudo vim /etc/systemd/system/myproc.service
示例:
[Unit]
Description=My Process
[Service]
ExecStart=/usr/bin/sleep 1000
Restart=always
[Install]
WantedBy=multi-user.target
启动:
sudo systemctl daemon-reload
sudo systemctl start myproc
sudo systemctl enable myproc
查看状态:
systemctl status myproc
七、查看和管理进程
ps aux | grep sleep
top
htop
kill PID
kill -9 PID
八、常见启动方式对比
方式
是否后台
是否脱离终端
适用场景
直接执行
❌
❌
临时命令
&
✅
❌
临时后台
nohup + &
✅
✅
长期运行
systemd
✅
✅
服务程序
cron
✅
✅
定时任务
如果你有具体场景(比如 启动 Java 程序 / Python 服务 / Docker / 开机自启 / 守护进程),可以告诉我,我可以给你更精确的示例。