Ubuntu
systemd 服務沒有列出文件的權限
我在 Ubuntu 上設置了一個遠端跟踪伺服器MLFlow作為 systemd 服務(這裡是我遵循的教程)。簡而言之,我在 python 中執行程序並通過 sftp 將一些指標和文件發送到遠端伺服器。
在
etc/systemd/system
我定義了一個mlflow-tracking.service
像這樣的文件:[Unit] Description=MLflow server After=network.target [Service] Restart=on-failure RestartSec=20 ExecStart=/bin/bash -c 'PATH=_mypath_/anaconda3/envs/mlflow_server/bin/:$PATH exec mlflow server --backend-store-uri postgresql://mlflow:mlflow@localhost/mlflow --default-artifact-root file:_mypath_/MLFLOW_SERVER/mlruns -h 0.0.0.0 -p 8000' [Install] WantedBy=multi-user.target
只要涉及從我的機器到遠端伺服器的文件傳輸,一切似乎都可以正常工作:所有文件最終都在它們應該的位置。但是,在 MLFlow UI 中,我收到以下錯誤消息:
無法列出目前執行的儲存在 sftp://192.XXX: mypath /MLFLOW_SERVER/mlruns/bc899e79336b461d9ca86d7dbcc37abf/artifacts 下的工件。請聯繫您的跟踪伺服器管理員以通知他們此錯誤,當跟踪伺服器缺乏列出目前執行的根工件目錄下的工件的權限時,可能會發生此錯誤。
192.XXX
執行服務的遠端電腦的 ip 在哪裡,並且是bc899e79336b461d9ca86d7dbcc37abf/artifacts
我寫入文件的文件夾之一。服務可能缺乏列出本地文件夾中文件的權限是否有原因?請注意,所有文件夾的權限都是
drwxrwxr-x
.
SFTP 連接
user@192.XXX
-user
是具有目錄和文件權限的遠端使用者。SSH 登錄到遠端 sftp 機器。
跑
whoami
或跑得更好id
使用者名/組應與所有者+權限匹配
ls -l /mypath