Ubuntu

systemd 服務沒有列出文件的權限

  • March 12, 2021

我在 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

引用自:https://unix.stackexchange.com/questions/638892