重定向 rc.local 中的输出不起作用

Mit*_*len 3 command-line bash

在我的rc.local文件夹中,我添加了此命令。'

/home/rootadmin/.virtualenvs/data_collection/bin/uwsgi --ini /etc/uwsgi/sites/data_collection_project.ini &>> /etc/uwsgi/uwsgioutput.txt
Run Code Online (Sandbox Code Playgroud)

我认为&>> /etc/uwsgi/uwsgioutput.txt会将此命令的所有输出重定向到/etc/uwsgi/uwsgioutput.txt. 相反,如果我运行sudo service rc.local start,所有输出都将在该 shell 中可见。如果我打开另一个外壳,将看不到任何输出。在这两种情况下,都不会写入任何内容/etc/uwsgi/uwsgioutput.txt

ste*_*ver 5

&>>是一种bashism - 它不会被dashshell 理解,(据我所知)仍然是默认的/etc/rc.local(相反,它将理解它为&ie>>后台命令,然后不向文件添加任何内容)。

您需要更改命令以使用 POSIX 形式的重定向,即cmd >> outfile 2>&1

/home/rootadmin/.virtualenvs/data_collection/bin/uwsgi --ini /etc/uwsgi/sites/data_collection_project.ini >> /etc/uwsgi/uwsgioutput.txt 2>&1
Run Code Online (Sandbox Code Playgroud)