How can I redirect nohup output to a specified file?
nohup dotnet application.dll > out.log 2>&1 &
is the correct form.
> out.log
redirects STDOUT to the file out.log
.
2>&1
redirects fd2 (STDERR) to fd1 (STDOUT), which is already redirected to the file out.log
.
Your problem lies in the file permissions (or a read-only filesystem). Prepending sudo
to your command can't fix this, because only nohup dotnet application.dll
is executed as root by sudo
, the output redirection is done by bash with your normal user privileges. You can work around this by calling a separate shell with root privileges:
sudo sh -c 'nohup dotnet application.dll > out.log 2>&1 &'
Related videos on Youtube
jjmcc
Updated on June 04, 2022Comments
-
jjmcc almost 2 years
Everything I have tried from other examples I have found on SO don't seem to work. I am trying to run my application using nohup but append the output of the application to a file.
I have tried some of the following. None of which seem to work.
nohup dotnet application.dll &> out.log & nohup dotnet application.dll > out.log 2>&1 & nohup dotnet application.dll > /opt/out.log &
I always receive something like
-bash: out.log: Permission denied
I have tried running the application using sudo but it still doesn't seem to work.
nohup dotnet application.dll &
Works fine, but it directs the output to some other directory like
/home/ubuntu/nohup.out
What am I doing wrong?
-
haccks about 6 years
nohup dotnet application.dll > out.log 2>&1 &
should work. -
melpomene about 6 yearsApparently you don't have write permissions on that file. Fix that first, then worry about
nohup
and&
.
-