私はこのプラットフォームに新しいです。 rc.localについて質問があります。自動的に実行するスクリプトを作成しましたroscoreおよびroslaunch rosbridge_server rosbridge_websocket.launch 。このスクリプト名はautoで、スクリプトの内容は次のとおりです。
#!/bin/sh
cd $home
xterm -hold -e "roscore" &
xterm -hold -e "roslaunch rosbridge_server rosbridge_websocket.launch"
exit 0
このスクリプトをrc.localで実行する必要があります。作成されるrc.localファイルは次のとおりです。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
Sudo auto.sh
sh '/home/moguztas/auto.sh'
exit 0
どこで間違っていますか? 起動時に "rc.local"を実行するにはどうすればよいですか? で9ステップのソリューションに従いますが、実行されませんでした。
問題は完全に解決しました。解決策を以下に示します。
まず、実行するスクリプトを作成します。コンピューターの起動時にrosbridge_websocket
を自動的に実行したい。スクリプト名はautoで、home/username/auto.sh
にあります。スクリプトの内容は次のとおりです。
#!/bin/bash
cd $home
source /opt/ros/Indigo/setup.bash
roslaunch rosbridge_server rosbridge_websocket.launch
exit 0
スクリプトファイルが実行可能であることを確認する必要があります。実行可能なスクリプトファイルには、コマンド$ Sudo chmod u+x /home/username/auto.sh
を使用します
rc.local
にある/etc/rc.local
でこのスクリプトを実行するには。 gksudo gedit /etc/rc.local
を使用して作成されます。 rc.local
の内部:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/home/username/auto.sh
exit 0
最後に、$ Sudo reboot
を使用してシステムを再起動する必要があります。コンピューターを起動すると、スクリプトは完全に機能します。