使用下面的命令,所有stderr和stdout都重定向到/tmp/ss.log,并在后台进程中执行。
python sslocal -c /etc/shadowsocks.json > /tmp/ss.log 2>&1 &现在,将stderr和stdout重定向到/var/log目录,如下所示。
python sslocal -c /etc/shadowsocks.json > /var/log/ss.log 2>&1 &
bash: /var/log/ss.log: Permission denied 它遇到了许可问题。
我试了一试,如下所示。
python sslocal -c /etc/shadowsocks.json |sudo tee -a /var/log/ss.log 2>&1 &
python sslocal -c /etc/shadowsocks.json 2>&1|sudo tee -a /var/log/ss.log &
nohup python sslocal -c /etc/shadowsocks.json |sudo tee -a /var/log/ss.log 2>&1 &
nohup python sslocal -c /etc/shadowsocks.json 2>&1|sudo tee -a /var/log/ss.log & 它们都遇到了另一个问题,命令不能在后台进程中运行,而是作为前台进程运行。
如何在后台进程中将stderr和stdout重定向到/var/log目录?
发布于 2017-04-23 15:07:48
sudo vi /etc/systemd/system/ss.service
[Unit]
Description=ss
[Service]
TimeoutStartSec=0
ExecStart=/bin/bash -c '/python sslocal -c /etc/ss.json > /var/log/ss.log 2>&1'
[Install]
WantedBy=multi-user.target编辑配置文件后启动它。
sudo systemctl daemon-reload
sudo systemctl enable ss.service
sudo systemctl start ss.service
sudo systemctl status ss -l1.ss作为服务运行,并在重新启动时自动启动。
2.ss可以在没有权限问题的情况下将日志写入/var/ log /ss.log。
发布于 2017-04-23 14:51:16
尽管尝试使用bash重定向重定向stdout / stderr,但我可能会添加另一种选择:在代码中重定向
import sys
sys.stdout = open(stdout.log, 'w')
sys.stderr = open(stderr.log, 'w')您只需在应用程序启动期间执行此代码,所有输出(stdout和stderr)都将被写入定义的日志文件。
发布于 2017-04-21 01:58:05
只需以根用户身份调用重定向:
sudo sh -c 'python sslocal -c /etc/shadowsocks.json > /var/log/ss.log 2>&1' &https://stackoverflow.com/questions/43484756
复制相似问题