2016-01-13 49 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