在ubuntu service服务中运行nohup 不生效
时间: 2024-02-17 09:03:37 浏览: 137
在 Ubuntu service 服务中运行 nohup 命令可能会出现不生效的情况。这是因为 service 命令是以系统服务的形式来运行你的脚本,而 nohup 命令则是在当前 shell 环境中运行脚本,并将其与当前 shell 进程分离,从而使脚本在后台运行。由于 service 命令不会保留当前 shell 环境,因此 nohup 命令就不能正常工作了。
如果你想在 service 服务中运行 nohup 命令,请使用以下命令:
```
sudo nohup sh -c "/path/to/your/script.sh >> /path/to/output.log 2>&1" &
```
这个命令会将你的脚本放到一个新的 shell 环境中运行,并将输出重定向到一个日志文件中。同时,将脚本放入后台运行。
另外,如果你想在 Ubuntu 上创建一个后台服务(daemon),可以使用 Systemd。使用 Systemd,你可以很容易地创建一个在后台运行的服务,并在系统启动时自动启动该服务。
相关问题
在ubuntu20.04 service服务中运行nohup 不生效
可能是因为在使用 `nohup` 命令时,没有将输出重定向到一个文件中。可以尝试使用以下命令:
```
nohup command > output.log &
```
其中,`command` 是要运行的命令,`output.log` 是输出重定向到的文件名。
如果还是不行,可以尝试使用 `systemctl` 命令来启动服务,例如:
```
sudo systemctl start your_service
```
然后通过 `journalctl` 命令查看服务的输出,例如:
```
sudo journalctl -u your_service -f
```
这样可以查看服务的输出并且不会因为终端关闭而停止服务。
ubuntu中nohup
nohup 是一条 Linux 命令,用于在后台运行程序,并将程序的输出重定向到一个指定的文件中。使用 nohup 命令可以让程序在 SSH 连接断开或用户注销后继续运行,并且不会受到 SIGHUP 信号的影响。
nohup 命令的使用方法如下:
```bash
nohup command arg1 arg2 ... argN > output_file 2>&1 &
```
其中,command 是要运行的程序,arg1、arg2、...、argN 是程序的参数,> output_file 表示将程序的标准输出重定向到 output_file 文件中,2>&1 表示将程序的标准错误输出重定向到标准输出中,& 表示将命令放入后台运行。
例如,要在后台运行一个名为 myprogram 的程序,并将其输出重定向到 myprogram.log 文件中,可以使用以下命令:
```bash
nohup ./myprogram > myprogram.log 2>&1 &
```
注意,在使用 nohup 命令后,程序的输出将不再显示在终端上。如果想要查看程序的输出,需要打开对应的输出文件。
阅读全文