2016-01-13 80 views
0

我目前正在建立一個Ubuntu 15.10基地的miniroot。所以我想用systemd。 我的標準腳本'/etc/init.d/script'由systemd找到並執行。 但是,我也確實對位於/etc/init/script.conf的腳本沒有執行權限。因此,我寫這個劇本systemd端口Upstart腳本到Systemd

[Unit] 
Description=Job that starts the startmaster.sh in /usr/bin/local/ 
Requires=script.service 
After=script.service 

[Service] 
Type=forking 
ExecStart=/sbin/getty -l /usr/local/bin/startmaster.sh -n 38400 tty6 

[Install] 
WantedBy=multi-user.target 

這個腳本在啓動執行,但它並沒有顯示預期的行爲

的startmaster.py #內容!/ bin/sh的

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

#vt=$1 
vt=6 


sleep 1 
chvt $vt 
sleep 1 
chvt $vt 
sleep 1 
chvt $vt 

screen -U master.py 

exec getty 38400 tty$vt 

dmesg顯示以下段錯誤

[ 2106.122116] master.py[3960]: segfault at 0 ip 00007f731ccfa892 sp 00007ffdb76d5620 error 4 in libc-2.21.so[7f731cc76000+1c0000] 

任何建議s如何解決這個問題

回答

1

我不知道你爲什麼需要getty和vt的複雜性。 master.py需要人工輸入嗎?爲什麼不直接從systemd設備運行master.py?如果需要監視它,可以通過運行journalctl -u master.service查看master.py的輸出來完成此操作。

這很簡單。請嘗試一下,看看它是否滿足您的需求

[Unit] 
Description=Master service that does xyz 

[Service] 
Type=simple 
ExecStart=/usr/local/master.py 

[Install] 
WantedBy=multi-user.target 
+0

萬一某些信息沒有給予用戶需要完成它們,因此我需要人工交互。 – user3694354

+0

我試了你的方式,並得到以下錯誤.... master.py [3847]:TERM環境變量需要設置....失敗result'exit'code' – user3694354