2017-02-02 120 views
0

我有一個python程序,我想在特定用戶登錄到我的Ubuntu服務器時運行。以前,我試圖通過命令useradd -m -s /var/jumpbox/jumpbox.py jumpbox來做到這一點。這個程序運行了程序,但是它的工作方式與/var/jumpbox目錄中的./jumpbox.py不同。問題是,這是一個curses菜單,當選擇一個選項時,將調用另一個.py文件來運行。使用useradd方法運行jumpbox.py,我的菜單是工作的部分,但在選擇某個選項時,它從不會調用我的其他.py文件。當jumpbox用戶(以及僅此用戶)登錄到服務器時,運行我的/var/jumpbox/jumpbox.py文件的最佳方式是什麼?Ubuntu服務器在特定用戶登錄時運行腳本

+0

難道說你的腳本,執行第二腳本時,沒有適用於它的完整路徑,或者它包含的東西和你的PYTHONPATH是錯的?如果您執行cd /tmp;/var/jumpbox/jumpbox.py,它會起作用嗎?如果不是,那麼這是一個路徑問題。究竟如何解決這個問題取決於你的代碼,但是如果有一個調用來執行某些事情,那麼只需在那裏添加完整路徑,它就可以實現。如果它是一個包含問題,你可以使用sys.path.insert(0,「/ var/jumpbox」),看看它是否有幫助。 – Hannu

回答

0

這是在jumpbox.py內調用.py文件的路徑。我只是把它作爲文件名引用,沒有完整的路徑,因爲它在同一個目錄中。 os.system("python <full path>.py")使它完美的工作。

感謝@Hannu