在我的rc.local
文件夹中,我添加了此命令。'
/home/rootadmin/.virtualenvs/data_collection/bin/uwsgi --ini /etc/uwsgi/sites/data_collection_project.ini &>> /etc/uwsgi/uwsgioutput.txt
我以为&>> /etc/uwsgi/uwsgioutput.txt
会将此命令的所有输出重定向到/etc/uwsgi/uwsgioutput.txt
。相反,如果我运行sudo service rc.local start
,则所有输出都将在该 shell 中可见。如果我打开另一个 shell,则不会显示任何输出。在这两种情况下,都不会写入任何内容/etc/uwsgi/uwsgioutput.txt
答案1
&>>
是巴什主义- 它不会被dash
shell 理解,因为 (AFAIK) 仍然是默认的/etc/rc.local
(相反,它会将其理解为&
紧接着的>>
即后台命令,然后不向文件附加任何内容)。
您需要更改命令以使用 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