在 bash 環境中啟動時執行 tcsh 腳本

在 bash 環境中啟動時執行 tcsh 腳本

我有一個名為的用戶,預設foo使用.我無法更改預設 shell。 Foo 有一個名為 running 的服務,該服務的所有啟動腳本和包含 ENV 變數的 .(dot) 檔案都位於 foo 的主目錄中。tcsh/etc/passwdxyz

現在,還創建了一個啟動腳本來運行該服務,並將/etc/init.d/xyz其放入用 bash 編寫的腳本中。

現在的問題是該服務未在啟動時啟動,並且我也無法在登入時從預設使用者執行它。只有當我 su 到 foo 用戶並執行腳本來啟動服務時才可以運行。

如果我喜歡這樣

sudo su foo /home/foo/xyz它會向我顯示類似的錯誤then: then/endif not found.

所以我想運行一個 tcsh 程序,以便在啟動時從 bash 中的 init.d 腳本運行。目前我嘗試這樣做

su - foo -c "source /home/foo/.env_vars && /home/foo/bin/xyz start"但這並不是啟動時啟動服務。

我不確定如何使 tcsh 腳本在啟動時執行。

答案1

您可以:

  • 用於tcsh -c $script透過 tcsh 運行腳本
  • 將腳本中的 shebang(第一行)設為#!/bin/tcsh並將其設為可執行;然後你就可以使用$script指令來啟動它。

相關內容